私が現在追求しているこのデータベース設計が健全であるかどうかについて、いくつかの意見が欲しいです。
「Home」というテーブルを作成しているとしましょう。このテーブルには「rooms」というテキストフィールドがあります。このフィールドには、この家にある一連の部屋のシリアル化されたデータがあります。もちろん、私の最初の本能は、このデータを別の「部屋」テーブルに正規化することでした。ただし、過去に過度に正規化されたデータベースでの苛立たしい経験のために、私は自分自身にいくつかの質問をするのをやめました。
- 特定の部屋を探す必要がありますか?
- 個々の部屋を更新する必要がありますか?
- ホームレコードでルームレコードを共有することはありますか?
これらの質問のそれぞれに対する答えは「いいえ」です。部屋の記録はすべて、各ホームに固有のものです。たとえば、データベース内にバスルームがある家の数を調べるためにクエリを実行する必要はありません。データは常にホームの観点から取得されます。ベッドルームとバスルームの数は、検索のためにホームレコードに明示的に保存されます。
そのため、常にRoomsに参加する代わりに、このデータをシリアル化してテキストフィールドにポップするだけで何が害になるのか疑問に思いました。
これは私には非常に理にかなっていますが、健全性チェックを望んでいます。ご入力いただきありがとうございます。