【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の書き方まとめを参考にしてみてください。

データベース

Posted by devsakaso