仕様と根拠
表と列の読み方
各 CREATE TABLE の括弧の中をカンマで分け、PRIMARY KEY・UNIQUE・CHECK・FOREIGN KEY などの表の制約を除いた項目の先頭を列名、続く語を型とします。列の PRIMARY KEY は PK、REFERENCES や FOREIGN KEY の列は FK、1 列の UNIQUE は UK として、型・名前・キーの順に書きます。
関係の記号の決め方
REFERENCES の参照先を親、参照する表を子として、親 記号 子 : 列名 の形で書きます。外部キーの列が NOT NULL か主キーなら親側は || (ちょうど 1)、NULL を許せば |o (0 または 1) です。子側は通常 o{ (0 以上)、外部キーが単独の主キーか UNIQUE なら o| (0 または 1) です。PostgreSQL では PRIMARY KEY は UNIQUE と NOT NULL を合わせた制約です。
実線と破線
Mermaid では実線 -- が識別関係、破線 .. が非識別関係を表します。外部キーの列がすべて子の主キーに含まれる場合を識別関係として実線にし、それ以外は破線にします。一般的な図で多用される実線とは異なる場合があるため、好みに合わせて出力の -- と .. を置き換えてください。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| Mermaid Entity Relationship Diagram | 2026年10月28日 | エンティティと属性(型 名前 キー)・関係の書き方・カーディナリティの記号・識別関係と非識別関係 |
| PostgreSQL ドキュメント CREATE TABLE | 2026年10月28日 | 列制約・表制約(PRIMARY KEY・UNIQUE・REFERENCES・FOREIGN KEY)。PRIMARY KEY は UNIQUE と NOT NULL を合わせた制約 |
| PostgreSQL ドキュメント 4.1 字句構造 | 2026年10月28日 | 4.1.1 識別子(引用符なしは小文字に畳む)・4.1.2.1 文字列定数 |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 完全な SQL の構文解析はしません。CREATE TABLE の ( ) の中の列の並びだけを読み、CREATE TABLE AS SELECT・PARTITION OF・継承などは判定不能と示します。
- ALTER TABLE で後から追加した主キーや外部キーは読みません。CREATE TABLE の中に書いた形で貼り付けてください。
- スキーマ名は図で省略するため、別のスキーマの同名の表は区別できません。複数列の UNIQUE には UK の印を付けません。
- 日本語など英数字以外の表名・列名は、Mermaid の描画側での扱いまでは確認していません。描画できない場合は英数字の名前に置き換えてください。
ご利用にあたって
- 出力は設計の確認用の図の元データです。実際のデータベースの定義と食い違いがないか、本番の変更前に確認してください。
- SQL の方言によっては CREATE TABLE の書き方が異なります。PostgreSQL 以外の SQL は正しく読めない場合があります。