現在、e コマース プラットフォームの製品セクションのデータベース構造を設計しています。無数の異なる属性を持つ無数の異なる種類の製品を販売できるように設計する必要があります。
たとえば、ラップトップの属性は、RAM、画面サイズ、重量などです。書籍の属性は、著者、ISBN、出版社などです。
EAV構造が最適と思われます。
- 商品を選択してください
- 製品は属性セットに属します
- 属性セットには属性 x および y が含まれます
- 属性 x はデータ型 datetime です (値は attribute_values_datetime に格納されます)
- 属性 y はデータ型 int (attribute_values_int に格納される値) です。
- 各属性定義は型を示します (つまり、x には列型 -> 日付型があります)
上記を仮定すると、選択を attribute_values_datetime テーブルに結合して、結果セットを取得せずに適切なデータを取得し、テーブルがわかっているので 2 番目のクエリを作成できますか? このタイプのクエリを作成すると、パフォーマンスに大きな影響がありますか、それとも以下の方が適していますか (機能は劣りますが)
- 商品を選択してください
- 製品は属性セットに属します
- 属性セットには属性 x および y が含まれます
- 属性 x はデータ型 datetime ですが、attribute_values に TEXT として格納されます
- 属性 y はデータ型 int ですが、attribute_values に TEXT として格納されます