見出し画像

アプリ作成2日目ーデータベース設計

DB設計の手順

  1. エンティティ(テーブル)を洗い出す

  2. 関連付けを考える

  3. 外部キーを考える(1対多ならば多に外部キーを持たせる)

  4. アソシエーションを考える

  5. ER図を作成する

  6. READMEに記載する


アプリに対してどんなカラムが必要かを紙に書いて考えるといいでしょう。
まずは作りたいアプリの見本の挙動を自分で一通り確認し
項目を洗い出すようにすると書きやすくなります。

注意すること!

なによりまず最初にやるのは『githubにブランチを作ること』です。

私は今回忘れてあとからブランチを作ったため、
コミット・プッシュする際にnew blanch をcreateとした後、
次のような選択肢がでてきました。

  1. Leave my changes on master

  2. Bring my changes to (新しいブランチ名)

この時、1を選んでしまうと、0からスタートになるので、
私のようなミスをしてしまった人は2を選択しましょう!

ER図の書き方

VScodeを使っている方であれば
『Draw.io』という拡張機能があるのでインストールして使いましょう。

READMEの書き方

基本的には『マークダウン』という方式で書いていきます。

こちらの公式ドキュメントを参考にするといいかと思います。
https://gist.github.com/mignonstyle/083c9e1651d7734f84c99b8cf49d57fa

Table表という書き方で、VScodeの中に以下の2つを記載していきます。

  1. ER図に書いたテーブル&カラム名を表のようにして書く。

  2. 空欄を許可しないこと(null :false)、外部キーを使用すること(foreign_key true)、テーブル間のアソシエーション(has_many、has_one、belongs_to)を書く。

細かい注意点

いくつか自分が苦労した点を書いておきます。

  1. カラム名の型に注意(string,integer,textの違い)

  2. カラムの中身によっては数字でもintegerでなくstring(電話番号、郵便番号にハイフンが必要な場合)

  3. active_storageやactive_hashの違いがわからない(←ちょい勉強不足)

3に関して。
active_storageはファイルのアップロード機能を簡単に実装できるgemです。
画像付きメッセージなど作成するときに導入するものです。
したがって、active_storageによりimageは自動でテーブルが作成されるので、データベース作成段階で書く必要はないようです。

また、active_hashは都道府県名など変更されないデータに対して使用できるgemです。
ビューファイルに長々と書かなくても、このgemをインストールすれば変更不要なデータもcreateメソッドなどように使えます。


今日はこれにて!
また明日頑張りましょう!!


駆け出しエンジニアなっちゃんの亀さんのような成長をあたたかく見守ってくださるとうれしいです。 自己研鑽に拍車をかけたいと思います!