テックキャンプ79日目〜最終課題開始/DB設計

kobasaです(´ω`*)
発展学習の実装課題はLGTMをいただけたので、今日から最終課題に突入です!最終課題の説明を聞いて、必要なツールの準備をしてDB設計からスタートです!

…全然わからん(´・ω・`)
エンティティを洗い出して英語のカラム名を考えるだけでも時間がどんどん過ぎていく。
これめっちゃ時間かかるやつやな。

あ、ToDo管理ツールのTrello便利そうですね。日本語表記なのが嬉しい。

79日目の勉強内容

とりあえず自分なりにDB設計してコードレビュー出してみました。
2回修正依頼が来て、現在2回目の修正確認待ちです。

カラムの型について

誕生日のカラムの型は、日付を表すdate型が適切に保存できる。
integer型は0から始まる整数を識別できないため、電話番号にはstring型を用いる。

プルダウンから選択する項目はactive_hashで実装する。
まだ勉強してないが保存するデータは数値で扱うそうなのでinteger型を用いる。
その際カラム名の末尾には「_id」が必要になる。

その他

unique: trueオプション 同じ値を保存させない制約

カラム名に予約語を使用しないよう注意する。メソッドなどに勘違いされてエラーの元になる。
send, day, value, stateなど。

has_one アソシエーションで1対1の関係を表す。ただし親と子の設定がある。
相手がいなくても成り立つ方が親で、成り立たない方が子。
親にhas_oneを記述し、子にbelongs_toを記述する。子には外部キーも必要。

コメント

タイトルとURLをコピーしました