BETA

DB設計のやりかた

投稿日:2019-12-08
最終更新:2019-12-08

DB設計の基本を学ぶために楽々ERDレッスンという本を買ってやってみた。
内容はDB専門家の話なのでかなり難しかったが、DB設計の基本が自分なりに分かった気がするので、まとめておく。

DB設計の手順

  1. イベント系を洗い出す。
  2. リソース系を洗い出す。
  3. 項目を埋めていく。
  4. リレーションシップを設定する。
  5. 重複をなくしたり、導出項目以外をなくして正規化を行う。

イベント系は「する」という風に、動詞化できるもの。あるいは「日」と付けられるもの。DBの中でこれが中心になる。
例)請求→請求する、請求日

リソース系は資産となるもの。動詞化はできない。
例)顧客、商品

ER図の書き方は以下のサイトがわかりやすかった。(逆に楽々ERDレッスンは難しすぎた)
若手プログラマー必読!5分で理解できるER図の書き方5ステップ

1対1、1対多、多対多

テーブル同士の関係の設定がいまいち分からなかったので、調べてみた。
「一対一」「一対多」「多対多」のリレーションを分かりやすく説明する

テーブルのレコード一つに対して、別のテーブルのレコードが何個参照できるか考えればいいっぽい。

例えば、Twitterのユーザーとツイートは1対多の関係。
ユーザー一人に対して多くのツイートが参照できる、ツイート一つに対しては一人のユーザーしか参照できない。

多対多の例は、例えばフォローするとフォローされるの関係。
互いに多くのレコードを参照できる。
こんな時は中間に別の、関係性を表すためだけのテーブルを設けて対応する。

テーブルやカラムの命名規則

下記記事を参考にした。
データベースオブジェクトの命名規約

  • テーブル名は複数形
  • スネークケース
  • 省略系は使用しない
  • 主キーはidで固定
  • 外部キーは「単数系_id」

とりあえずはここらへんを守っておけば大丈夫そう。

これは実践が必要だ

理論を学んだだけでは何も身に着かないと思うので、オリジナルサービスをつくるときに利用していきたい。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

BЯunoの技術ブログ。日々学んだことを記録していくよ。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう