こんにちは、おーしまです。
今回は、現在作っている自動車レビューアプリのタグ付けについてですが、一つ問題が発生しました。
タグって何?笑
私は、この自動車レビューアプリで、例えば
ようにしたくて、このことをタグ付けだと思っていたのですが、どうやら違ったみたいです。
タグ付けとは、例えばレビューに「TOYOTA」とタグを付けると、「TOYOTA」というタグがTagsテーブルに保存され、「TOYOTA」一つに対してたくさんレビューが紐付くというものらしいです。つまり私はレビューごとにメーカーやらを入力させて、それをそのままtagsテーブルに保存しようとしていたので、それだったらもうcarsテーブル(レビューのテーブル)に入れたほうがいいやんって事です。
画像で説明します。
おーしまのタグの考え方
本来のタグの考え方を考慮
おーしまのタグの考え方だと、レビューとタグが、多対多ではなく、一対一の関係になっていることが分かります。本来のタグの考え方では、多対多の関係性ができるので、一つのタグに対していくつかのレビューが結びつかなくてはおかしいです。
そして、私が実装しようとしていた「TOYOTAだけのレビューを表示」などは、レビュー自体にメーカーカラムを保存しても、おそらく実装できます。(makerカラムが「TOYOTA」のものだけうまく取り出せばできるはず)
よって、maker, car_name, body_type の3つのカラムはレビューのテーブルに保存して、その横にその他のタグ付けができるフォームを設置することにしました。
ER図は、このようになります。
これで、変更をかけて自動車レビューアプリを作っていきたいと思います。
ちなみに、テーブルのカラムの名前変更や、追加、削除に関してネットにたくさん載っているので、そちらを参考にしてください。
今回はここまでです。
それでは、また〜