データベースに慣れるために、php と SQL でちょっとしたサイド プロジェクトを行っています。データベースに関する正式なトレーニングは受けていません。SQL の実用的な知識があるだけです。
オブジェクト テーブルでオブジェクトを追跡し、プロパティ テーブルでプロパティを追跡する予定です。100件の物件があるとしますが、それはおそらく将来的に拡大するでしょう。これらのテーブルはどちらも 2 つの列だけが必要です。
単純に、どのオブジェクトがどのプロパティを持っているかを、列がプロパティ ID で行がオブジェクト ID であるテーブルに記録します。エントリは、オブジェクトがプロパティを持っているかどうかに応じて、単純に「true/false/null」のブール値になります。新しいオブジェクトが追加されるたびに、100 列の行を 1 つ追加する必要があります。新しいプロパティが追加されると、各オブジェクトの行を含む 1 つの列を追加する必要があります。
ただし、列の数を気にしている場合は、設計上の問題があることを以前に読みました。別のテーブルが友人から提案されました。これには 3 つの列があり、エントリはオブジェクト ID、プロパティ ID、および対応するブール値だけで構成されます。このスキームでは、新しいオブジェクトを追加すると、このテーブルに 100 個の新しい行を追加する必要があります。
誰かが 2 つのデザインのどちらが優れているか、またその理由を明確にすることができますか? 何らかの理由で、多くの行を持つよりも多くの列を持つ方が問題がありますか?
これが重複した質問であったとしても、私はまったく驚かないでしょう。その場合、私にとって正しい質問を指摘してくれてありがとう. ありがとう!