本日のOut Put part26
お久しぶりです。
Ramrinです^^
ここずっとOutPut関係の更新をサボっていました。。。
まだまだ自分に甘いですね。
改めてOutPut頑張っていきたいと思います!!
OutPutの更新はサボってたのですが、勉強としては最終課題に入りました。
ここ3日間くらいはデータベース設計に苦戦していて、
今日やっとメンターさんからLGTMをもらうことができました!
作成するアプリとしては、ユーザーが商品を出品、購入できる簡単なフリマアプリになります。
なぜ自分がDB設計に苦戦したかというと、
①エンティティの抽出が甘かった。
②各テーブルの関連付とアソシエーションがごちゃごちゃになっていた。
③カラムの型や制約について、理解が足りていなかった。
の3つが主な原因です。
①について
エンティティとはサービスで扱われるデータ自体のことです。
見本のアプリを試して使用しながら、
今回の実装で必要なデータ、つまりエンティティをメモや紙に書き出したのですが、
結果的にいくつも抜けていました。
特に購入履歴のテーブルについては指摘されてから初めて気付きました。
メモや紙も殴り書きのように書いていたので、見直しずらかったので、
今後はメモや紙も大切にしようと思いました。
②について
has_manyとbelongs_toの関係はできていたのですが、
has_oneとbelongs_toの関係に苦戦しました。
どちらが親で、子なのかということを考えていると、
どんどん分からなくなっていました。
落ち着いて考えたら分かるので、焦らないようにしないとですね。
③について
今回の実装の中でactive_hashというDBに保存しないが、
あたかも保存したかのような扱いができるGemを使用するのですが、
ルール上、integer型でないといけないということを知りました。
追加するGemによっては他にもルールがあるので、
気を付ける必要があると思いました。
実際にどのようなDB設計をしたのかというのは、
最終課題提出後に改めてまとめたいなと思っています。
明日からはユーザー管理機能の実装に取り掛かります!