[ テーブル名 ]
最終更新: [ 更新日を記載 ]
概要
テーブル目的: [ テーブルの目的(例:会員基本情報の管理、注文履歴の記録) ]
設計方針: [ 設計の方針(例:正規化レベル、パフォーマンス重視) ]
想定レコード数: [ 想定レコード数(例:初期10万件、年間成長率20%) ]
データベース: [ 使用DB(例:PostgreSQL 13以降、MySQL 8.0以降) ]
関連集約: [ 対応するDDD集約(例:Member集約、Order集約) ]
テーブル定義
カラム名 |
論理名 |
データ型 |
NULL/NOT NULL |
デフォルト値 |
説明 |
---|---|---|---|---|---|
[ カラム名1 ] |
[ 論理名1 ] |
[ データ型(例:UUID, VARCHAR(255), INTEGER) ] |
[ NULL/NOT NULL ] |
[ デフォルト値 ] |
[ カラムの説明・用途 ] |
[ カラム名2 ] |
[ 論理名2 ] |
[ データ型 ] |
[ NULL/NOT NULL ] |
[ デフォルト値 ] |
[ カラムの説明・用途 ] |
created_at |
作成日時 |
TIMESTAMP |
NOT NULL |
CURRENT_TIMESTAMP |
レコード作成日時 |
updated_at |
更新日時 |
TIMESTAMP |
NOT NULL |
CURRENT_TIMESTAMP |
レコード最終更新日時 |
制約定義
主キー制約:
制約名: pk_[ テーブル名 ]
対象カラム: [ 主キーカラム名 ](例:id)
説明: [ 主キーの説明 ]
外部キー制約:
制約名 |
カラム名 |
参照テーブル |
参照カラム |
ON DELETE |
ON UPDATE |
---|---|---|---|---|---|
fk_[ 制約名1 ] |
[ カラム名1 ] |
[ 参照テーブル名 ] |
[ 参照カラム名 ] |
[ DELETE動作 ] |
[ UPDATE動作 ] |
fk_[ 制約名2 ] |
[ カラム名2 ] |
[ 参照テーブル名 ] |
[ 参照カラム名 ] |
[ DELETE動作 ] |
[ UPDATE動作 ] |
一意制約:
制約名 |
対象カラム |
説明 |
---|---|---|
uk_[ 制約名1 ] |
[ カラム名 ](例:email) |
[ 一意性の説明(例:メールアドレスの重複禁止) ] |
uk_[ 制約名2 ] |
[ カラム名1, カラム名2 ] |
[ 複合一意制約の説明 ] |
チェック制約:
制約名 |
条件式 |
説明 |
---|---|---|
chk_[ 制約名1 ] |
[ 条件(例:status IN ('active', 'inactive', 'suspended')) ] |
[ チェック制約の説明 ] |
chk_[ 制約名2 ] |
[ 条件(例:created_at <= updated_at) ] |
[ チェック制約の説明 ] |
インデックス定義
パフォーマンス用インデックス:
インデックス名 |
種類 |
対象カラム |
用途 |
---|---|---|---|
idx_[ インデックス名1 ] |
[ 種類(例:B-tree, Hash, GIN) ] |
[ カラム名 ](例:email) |
[ 用途(例:ログイン時の検索高速化) ] |
idx_[ インデックス名2 ] |
[ 種類 ] |
[ カラム名1, カラム名2 ] |
[ 用途(例:複合条件での検索高速化) ] |
部分インデックス (該当する場合):
インデックス名 |
対象カラム |
WHERE条件 |
用途 |
---|---|---|---|
idx_[ 部分インデックス名 ] |
[ カラム名 ] |
[ 条件(例:status = 'active') ] |
[ 用途(例:アクティブユーザーのみの検索) ] |
フルテキストインデックス (該当する場合):
インデックス名 |
対象カラム |
言語設定 |
用途 |
---|---|---|---|
idx_[ フルテキストインデックス名 ] |
[ カラム名 ] |
[ 言語(例:japanese) ] |
[ 用途(例:本文検索機能) ] |
ER図
erDiagram %% テンプレート例 example_table { UUID id PK "主キー" VARCHAR name "名前" TEXT description "説明" INTEGER status "ステータス" TIMESTAMP created_at "作成日時" TIMESTAMP updated_at "更新日時" } related_table { UUID id PK "主キー" UUID example_table_id FK "関連テーブルID" VARCHAR value "値" TIMESTAMP created_at "作成日時" TIMESTAMP updated_at "更新日時" } example_table ||--o{ related_table : "1対多の関係"
初期データ・マスタデータ
必須初期データ:
[ カラム名1 ] |
[ カラム名2 ] |
[ カラム名3 ] |
説明 |
---|---|---|---|
[ 値1 ] |
[ 値2 ] |
[ 値3 ] |
[ データの説明 ] |
[ 値1 ] |
[ 値2 ] |
[ 値3 ] |
[ データの説明 ] |
INSERT文例:
-- [ 初期データの説明 ]
INSERT INTO [ テーブル名 ] ([ カラム1 ], [ カラム2 ], [ カラム3 ]) VALUES
('[ 値1 ]', '[ 値2 ]', '[ 値3 ]'),
('[ 値1 ]', '[ 値2 ]', '[ 値3 ]');
関連情報
関連DDD設計:
../ddd/[ 関連DDD設計名 ]
関連ユースケース:
../usecase/[ 関連ユースケース名 ]
データベース全体設計:
データベース全体ER図: データベース全体ER図
その他の関連テーブル:
[ 関連テーブル名1 ]
[ 関連テーブル名2 ]