0

我有 3 个不同的实体,它们都需要进入特色产品/实体/其他表格。问题是特色产品的类型可能是 entityA、entityB 或 entityC。我如何建模并为它制作 symfony2 形式?最好的方法是什么?

例如,一家汽车经销商需要选择特色产品,但产品可能是“摩托车”、“汽车”或“卡车”(所有这些都是三个类,有 3 个表存储它们的数据)。

我可以想到一个表,其中包含一对多的可空外键,并且只能使一个表不为空,但这对我来说似乎不正确。

4

1 回答 1

0

大声笑完全误解了这个问题,对不起。

无论如何,我认为相同的策略适用于您实际要求的内容。

表 'featured_products' object_ID FOREIGN KEY on 'objects'.'ID'

object_ID
1
2
3

表“对象”这将只保存您的对象 ID

ID (AI)
1
2
3

表'cars':'objects'上的object_ID FOREIGN KEY。'ID'(没有自动增量!)

object_ID | name
1         | Ferrari
2         | Duckatti

表“卡车”:“对象”上的 object_ID FOREIGN KEY。“ID”(无自动增量!)

object_ID | name
3         | Monster truck

此设置意味着您还必须更改一些代码。因为您必须将 NULL 值插入对象并将 insert_ID 用于您的汽车、卡车等。

我从来没有真正尝试过这个。但是您可能会成功使用以下查询。

SELECT
   truck.name, car.name
FROM
   objects
LEFT JOIN trucks ON trucks.object_ID=objects.ID
LEFT JOIN cars ON cars.object_ID=objects.ID
WHERE objects.ID IN((SELECT * FROM featured_products))
GROUP BY objects.ID
于 2013-02-28T20:43:52.793 回答