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

製品属性のデータベーススキーマ

    達成しようとしているのは、 Entity-Attribute-Valueです。 (EAV)またはおそらく行モデリング 解決。このタイプの構造は、さまざまなかなりの理由で大部分が眉をひそめていることに注意してください。

    ただし、私は主張しました(例:こここここちら 、およびここ )そうでない場合を除いて、EAVはEVILです。これらのまれな例外の1つは、製品のプロパティを追跡している製品カタログの場合であり、それらのプロパティはそれほど興味深いものではありません(システムにとって! )これらを取得して製品のWebページや比較グリッドなどに印刷する必要がある場合を除きます。

    次のような設計を検討してください:

    このようなモデルで行っていることは、特定のカテゴリの製品が持つべき属性、それらの属性が持つ可能性のある値、そして各特定の製品が各属性に対して持つ値を説明することです。

    この設計には、EAVが課す通常の制限がすべてあります。ただし、「直径8mmのビーズはどれですか?」などの質問をしたい場合。それは非常に簡単です。




    1. OSXをYosemiteまたはElCapitanにアップグレードすると、MySQLが起動しません

    2. MariaDBの日付から月を返す4つの関数

    3. 文字列フィールドからMySQLの日付を変換する

    4. SQLエラー:ORA-01861:リテラルがフォーマット文字列01861と一致しません