DB設計用のドキュメント@AI用ドキュメント¶
DB設計のドキュメント¶
DB全体¶
記入中...
DBテーブル¶
このドキュメントはDBテーブルの設計を考えるためのドキュメントであり、生成AIに読み込ませることを想定している。
- 検証対象の実装を読み込む。
- 次のDBテーブルのプラクティスを読み込む。
- 次の観点でDBテーブルを追加/改善する。
- 次のようにテーブル構造を整理して
| 物理名 | 論理名 | 型 | プライマリー/ユニークキー | NOT NULL制約 | デフォルト値 | 説明 | 値の例 |
|---|---|---|---|---|---|---|---|
foo_id |
〇〇ID | VARCHAR(15) | プライマリキー | 禁止 | N/A | 〇〇に関するID | 123456789 |
foo_name |
〇〇名 | VARCHAR(15) | N/A | 禁止 | N/A | 〇〇に関する名前 | hiroki.hasegawa |
| ... | ... | ... | ... | ... | ... | ... | ... |
created_at |
作成日時 | DATETIME(3) | N/A | 禁止 | CURRENT_TIMESTAMP(3) | UTCのタイムスタンプ | 2025-01-01 12:34:00.000 |
updated_at |
更新日時 | DATETIME(3) | N/A | 禁止 | CURRENT_TIMESTAMP(3) | UTCのタイムスタンプ | 2025-01-01 12:34:05.250 |
- カラム
- ドメイン上意味付けする必要があるものをカラムにできているか
- ドメイン上意味付けする必要がないもの(単なる集計結果や複合データ)をカラムにしていないか
- リレーション
- リレーションが重複しており、過剰でないか
- 複合プライマリーキー
- バッチ処理では重複防止のために複合プライマリーを使用する
- 複合インデックス
- SQLで
=の等価指定のあるカラムを前におき、次にIN句で複数の等価指定、最後にBETWEENで範囲指定のあるカラムを後に置く。 - カーディナリティが低いほど、B-Treeインデックスの検索グループが増えるためDBが処理しないといけないレコード数が増えてしまう。そこで、等価条件が複数ある場合、カーディナリティの高いカラムをより前におく。
- SQLで