会員と注文の 1 対多

users と orders の 2 つの表で、orders.user_id が users.id を参照する代表例です。UNIQUE の印と、NOT NULL の外部キーによる関係の記号を確かめます。

入力

CREATE TABLE 文

CREATE TABLE users (
  id integer PRIMARY KEY,
  email text NOT NULL UNIQUE
);
CREATE TABLE orders (
  id integer PRIMARY KEY,
  user_id integer NOT NULL REFERENCES users (id)
);

結果

エラー 0 件・警告 0 件・情報 0 件

指摘(エラー・警告・情報)

指摘はありません。

表2 個
列4 個
関係1 本

Mermaid の erDiagram

erDiagram
    users {
        integer id PK
        text email UK
    }
    orders {
        integer id PK
        integer user_id FK
    }
    users ||..o{ orders : "user_id"

検算(この結果になる理由)

email は 1 列の UNIQUE なので UK、user_id は REFERENCES なので FK です。user_id は NOT NULL で親側は || (ちょうど 1)、子側は o{ (0 以上)です。user_id は orders の主キーに含まれないため、非識別関係の破線 .. になります。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 出力は設計の確認用の図の元データです。実際のデータベースの定義と食い違いがないか、本番の変更前に確認してください。
  • SQL の方言によっては CREATE TABLE の書き方が異なります。PostgreSQL 以外の SQL は正しく読めない場合があります。

ほかの入力例