OSCON 昨日、Josh BerkusはDB設計に関する優れたチュートリアルを提供し、そのかなりの部分を容赦なくそのような「 EAV 「テーブルがあります。OSCONサイトで彼のスライドをすぐに見つけることができ、最終的には彼のチュートリアル全体のオーディオ録音をオンラインで見つけることができるはずです(後者はおそらくしばらく時間がかかります)。
属性ごとに結合する必要があります(values
の複数のインスタンス テーブル、フェッチまたは更新している属性ごとに1つ)、「結合テーブルが少ない」とはどういう意味かわかりません。同じテーブルの多くのインスタンスを結合することは、特に高速な操作ではありません。また、設計により、インデックスはほとんど実行不可能で使用できなくなります。
少なくともマイナーな改善として、属性の値にタイプごとに個別のテーブルを使用します(MySQLでは、テーブルごとにクエリごとに1つのインデックスに制限されていますが、多少疑わしい場合でも、その場合はインデックスが適用される可能性があります)。