【MySQL】データベース作成のときの実践的なテーブル構成方法
データベース作成のときの実践的なテーブル構成方法を紹介します。
目次から読む
トランザクションテーブルとマスタテーブルの識別
トランザクションテーブル
トランザクションテーブルとは、phpなどアプリからデータを頻繁に挿入したり更新したりするようなテーブルです。
エントリーテーブルとも呼ばれます。
例えば、注文を受けつけたオーダー情報のテーブル、顧客情報のテーブル、請求情報のテーブルなどです。
先頭にENT, TXN, TRNなどを付けてトランザクションテーブルとわかりやすいテーブル名にします。
マスタテーブル
参照値を保持する用のテーブルです。
アプリからは頻繁には値を挿入、変更しないテーブルです。
商品一覧や、店舗一覧などです。
先頭にはMSTとつけてマスターであることを示します。
論理削除フラグの導入 – delete_flg
レコードの有効性を識別するためのフラグです。
delete_flgや、valid_recordなどの名前でフラグを作成します。
例えば、delete_flg = 1の場合には無効レコードとして扱うといった使い方をします。
更新日、更新者の導入 – updated_at, updated_by
レコードがいつ、誰によって変更されたのかを保持するための属性で、updated_at, updated_byを付与します。
登録日なども設けたりします。
バグの原因やいつのバグなのかがわかりやすくなります。
current_timestampで現在日時を取得できます。
on update current_timestampとすると、更新されたときも日時を取得できます。
外部キー制約はつける場合とつけない場合がある
外部キー制約はとても狭い制約になるため、つけない場合もあります。
外部キー制約の作成方法については、【MySQL】SQLの書き方まとめを参考にしてみてください。