sql >> データベース >  >> RDS >> Mysql

無制限の動的フィールドに対するMySQLデータベース設計の批評

    OSCON 昨日、Josh BerkusはDB設計に関する優れたチュートリアルを提供し、そのかなりの部分を容赦なくそのような「 EAV 「テーブルがあります。OSCONサイトで彼のスライドをすぐに見つけることができ、最終的には彼のチュートリアル全体のオーディオ録音をオンラインで見つけることができるはずです(後者はおそらくしばらく時間がかかります)。

    属性ごとに結合する必要があります(valuesの複数のインスタンス テーブル、フェッチまたは更新している属性ごとに1つ)、「結合テーブルが少ない」とはどういう意味かわかりません。同じテーブルの多くのインスタンスを結合することは、特に高速な操作ではありません。また、設計により、インデックスはほとんど実行不可能で使用できなくなります。

    少なくともマイナーな改善として、属性の値にタイプごとに個別のテーブルを使用します(MySQLでは、テーブルごとにクエリごとに1つのインデックスに制限されていますが、多少疑わしい場合でも、その場合はインデックスが適用される可能性があります)。



    1. Postgresテーブルの列名の制限?

    2. DoctrineでLIMITを使用したサブクエリ

    3. 範囲を含む場合、インデックスの最初のカーディナリティ列が高くなりますか?

    4. replace intoにはwhere句がありますか?