Instruction file imported from jugeeem/todo-db (
.github/instructions/ddl-table.instructions.md). Copyright stays with the author.
テーブル DDL 規約
リファレンス実装
usr.users テーブルを規約の基準テンプレートとする。
必須構造
すべてのテーブルは以下の構造に従うこと:
CREATE TABLE IF NOT EXISTS スキーマ名.テーブル名 (
-- 主キー(必須)
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
-- ビジネスカラム(テーブル固有)
...
-- 監査カラム(必須)
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
created_by UUID NOT NULL,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
updated_by UUID NOT NULL,
-- 論理削除カラム(必須)
deleted_at TIMESTAMP WITH TIME ZONE,
deleted_by UUID
);
カラム順序
id(主キー)- ビジネスカラム(テーブル固有のカラム)
- 外部キーカラム(ある場合)
- 監査カラム(
created_at,created_by,updated_at,updated_by) - 論理削除カラム(
deleted_at,deleted_by)
制約
NOT NULL制約を適切に設定するUNIQUE制約はビジネスルールに応じて付与する- 外部キーは
REFERENCES スキーマ名.テーブル名(id)の形式で定義する
ファイル配置
src/DDL/tables/スキーマ名/スキーマ名.テーブル名.sqlに配置する- 1 ファイルにつき 1 テーブルの定義とする