まず、次の DB スキーマがあります。
をcategories
含む がありますproducts
。また、 ( 「赤」、「緑」など)attributes
を含む(「色」など)もあります。values
最後に、と の間に ManyToMany 関係があるため、 とをに関連付けるtableattributes
をproducts
介してこれらを に割り当てることができます。このテーブルは Doctrine によって自動的に作成されます。ProductAttributeValues
attribute value
product
Product
AttributeValue
このようにして、 (ルノー・メガーヌ、フォード・フォーカスなど)を搭載したcategory
(車)を持つことができます。products
それぞれproduct
が複数attributes
持つことができますvalues
(色: グレー、エンジンの種類: ガソリンなど)。この最後の例では、色は でAttribute
、グレーはAttributeValue
です。エンジンの種類は別Attribute
で、ガソリンはAttributeValue
です。
エンティティにデータ (カテゴリ、属性、属性値、製品) を入力したら、関連付けるフォームを作成attributes
しvalues
、特定のproduct
.
多かれ少なかれ、フォームは次のようになります。
したがって、「車」にいるので、これに属するcategory
すべてのもの(エンジンと色) を表示する必要があります。同時に、これらすべてを表示する必要があります(エンジンはガソリン、ディーゼル、電気…、色はグレー、赤、青…)。attributes
category
values
attributes