技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

DB設計をするときに気をつけていること

データベースはシステムの基盤です。

DB設計に失敗するとアプリケーションの実装が複雑になる、などの辛い思いをします。

また、後から修正するのは実装影響が大きいため容易ではありません。

DB設計する上で自分が普段気をつけている箇所を記載します。

1, 検索するカラムにはINDEXを貼るようにする。(JOINするテーブルが2つ程度なら問題ありませんが、JOINの回数が増えると急激に重くなるの)

2, 後から必要になりそうなデータ(ユーザー情報)削除は物理削除ではなく、論理削除にする

3, booleanの場合はnull許容しない、またdefult値を必ず設定する

4, 自分だけではなく他人が見てわかりやすいカラム名称をつける

5, ユーザー(利用者)の購入履歴などのユーザーが後で見返したい情報は履歴テーブルに保存する

6, 開発者が後のバグなどを調査しやすいようにログテーブルを作成する

7, Json形式での保存はできる限り避ける(JSONデータ型は汎用性が高く便利だが、保存内容が不透明、SQL検索しづらいなどのデメリットが多い)

8, booleanのカラムはひと目でわかるようにする(is can has_ の様なprefixを付ける)

9, 正規化する

参考

DBエンジニア必見 => 名著「失敗から学ぶRDBの正しい歩き方」のまとめ - Qiita

【初心者向け】データベースのテーブル設計で僕が意識している6つのこと - Qiita

データベース設計の際に気をつけていること - 食べチョク開発者ブログ

データベース(RDB)設計の進め方! - Qiita