Query Go
ER 図は全列載せる — 共通カラムは非表示機能で隠す
ER 図

ER 図は全列載せる — 共通カラムは非表示機能で隠す

列を省くと FK・NOT NULL の設計根拠が失われる。全列を残し、表示側で隠す。

ER 図は全列載せる — 共通カラムは非表示機能で隠す diagram

「主要属性だけ」方針の欠点

「ER 図には PK / FK / 主要属性だけ書き、残りは DDL を見ろ」——これは簡潔に見えますが、実運用では図を単体で読む場面(レビュー資料・納品物・オンボーディング)で必要情報が落ちます。

  • FK が見えない: 「主要」に FK が含まれるとは限らず、線だけ引かれて根拠列が不明になる
  • NOT NULL / NULL 可否が読めない: 論理制約が図から消え、設計議論で根拠を示せない
  • 監査列の有無が追えない: 論理削除 deleted_at の有無はレビューで必ず問われる
  • 列の追加削除で「図と DDL のどちらが正か」が揺らぐ: 省略ルールが曖昧だと、列追加のたびに「図に載せる列か否か」の議論が発生する

ER 図は「DDL の代わりに読める設計ドキュメント」として使えるのが理想です。そのためには全列を載せた方が良い——ただし共通カラムで箱が縦長になる問題は別の方法で解決します。

実例 — A5:SQL Mk-2 の「共通カラム非表示」でビフォー / アフター

A5:SQL Mk-2 では、全テーブルに共通で付く列(監査列・バージョン列・論理削除列など)を「共通カラム」として登録でき、ER 図表示時にそれらをまとめて非表示にできます。

状態図に出る列ファイルに保存される列用途
共通カラム 表示全列(業務列 + 監査列)全列DDL 出力・実装者レビュー
共通カラム 非表示業務列のみ全列(変わらず)設計レビュー・業務担当説明・関係俯瞰

重要なのは「ファイル側には全列が残る」ことです。非表示は描画時のフィルタであり、列を削除しているわけではありません。そのためDDL 生成・整合チェック・後からの列検索にも影響しません。

典型的な共通カラム登録例: created_at / updated_at / created_by / updated_by / deleted_at / version。詳しくは 共通カラム設計 を参照。

設定手順の要点(A5:SQL Mk-2)

  1. 共通カラムを登録: ER 図の「設定」 → 「共通カラム」から、列名パターン(created_at / updated_at など)を追加。正規表現も可
  2. 表示切替: 「表示」メニュー → 「共通カラムを隠す/表示する」で ER 図全体を一括切替
  3. 個別エンティティの例外: 共通カラムを持たないテーブル(履歴テーブルなど)は自動で対象外。例外指定も可能
  4. 論理 ER / 物理 ER と組み合わせる: 「論理名のみ」「物理名のみ」の切替と併用できる(論理 vs 物理

プロジェクト開始時に共通カラムを 1 回決めておくと、以後追加するテーブルにも自動で適用されます。設計ルールの一部として ER ファイルに埋め込むことで、チーム全員が同じ表示設定でレビューできます。

大規模スキーマはレイヤー分割で

共通カラム非表示で縦方向の重さは解決しますが、テーブル数が多すぎる問題は別です。100 テーブルを 1 枚に収めるのは無理で、関心領域(bounded context)で分割します。

  • 全体俯瞰図: テーブル名と主な線のみ。20〜30 個以下に絞る
  • ドメイン別詳細図: 「注文まわり」「在庫まわり」など 5〜10 個に絞って全列載せる(共通カラムは非表示)
  • 論理 / 物理の切替: 1 ファイルで「論理名のみ」「物理名のみ」を切り替えて両方使う

A5:SQL Mk-2 は 1 つの DB から複数の ER 図ファイルを保持できます。「1 枚で全部」は諦める。ただし 1 枚あたりは全列載せるのが、設計情報を落とさない運用です。