この質問はprogrammers.stackexchangeに適している可能性があります。その場合は、移行してください。
私は現在、典型的なデータモデルの複雑さについて考えています。データモデルを正規化する必要があることは誰もが知っていますが、一方で、正規化されたデータモデルでは、後でデータを再構築するためにかなりの数の結合が必要になります。また、関係するテーブルのサイズによっては、結合は潜在的にコストのかかる操作です。それで、私が理解しようとしている質問は、通常、このトレードオフについてどのように取り組むかということです。つまり、実際には、データモデルを設計するときに、一般的なクエリで許容できる結合の数はいくつですか?これは、単一のクエリで複数の結合をカウントする場合に特に興味深いでしょう。
例として、家を所有し、部屋があり、引き出しがあり、アイテムが入っているユーザーがいるとします。これをユーザー、家、部屋、引き出し、および上記の意味でのアイテムのテーブルで簡単に正規化すると、後で特定のユーザーに属するすべてのアイテムを取得するときに、5つのテーブルを結合する必要があります。これは私には非常に複雑に思えます。
ほとんどの場合、テーブルのサイズも関係します。データが少ない5つのテーブルを結合することは、数百万行の3つのテーブルほど悪くはありません。それとも、この考慮事項は間違っていますか?