/note/tech

増田氏のDB設計哲学

テーブルを記録の意味別に適切に分割する。

主キー制約、一意制約、外部キー制約、NOT NULL制約を徹底する。

適切なデータ型を選ぶ。

テーブルをスキーマでグルーピングする。

スキーマ名、テーブル名、カラム名を日本語にする。

区分はコードよりも名前で一意識別する。

これらを徹底するのが良い設計

@masuda220

データの品質が上がり、SQL文が読みやすくなり、プログラムの変更が楽で安全になる。

逆の設計が生み出すデータ内容の乱雑さ、SQL文の読みにくさ、プログラムの変更のやっかいさと比べれば、こういう設計の価値が具体的に理解できる。

@masuda220