主キーが外部キーを兼ねる 1 対 1

プロフィール表の user_id が主キーであり、同時に users を参照している例です。子側が 0 または 1 になる 1 対 1 の関係を確かめます。

入力

CREATE TABLE 文

CREATE TABLE u (id int PRIMARY KEY);
CREATE TABLE p (user_id int PRIMARY KEY REFERENCES u (id));

結果

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

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

指摘はありません。

表2 個
列2 個
関係1 本

Mermaid の erDiagram

erDiagram
    u {
        int id PK
    }
    p {
        int user_id PK, FK
    }
    u ||--o| p : "user_id"

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

p.user_id は単独の主キーで、外部キーの列がすべて主キーに含まれるため実線 -- です。PRIMARY KEY は NOT NULL を含むので親側は ||、同じ値は 1 行しか持てないので子側は o| (0 または 1)になります。

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

このツールの制約

ご利用にあたって

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

ほかの入力例