我需要为我的产品设置数据库。我需要在此数据库中存储产品名称,产品奖,产品详细信息和产品功能。一个产品现在有多个功能如何设置此数据库?
我已经设置了一个包含两个表的数据库
- Product_detail有id,p_name,p_detail,p_prize和
- Product_ features具有id,p_功能(一个数据库还有一个羽毛)
醇>
这是对的吗?如果正确,那么我如何才能在产品及其功能之间建立关系?我如何从数据库中检索数据?
如果这是错的,我怎么能这样做?
答案 0 :(得分:1)
这是一种常见的关系设计模式,用于解决您描述的多个关系。您需要一个链接表才能将Product_detail
与Product_features
相关联。
我会重命名您的表格,以便您拥有Product
,Feature
和链接表ProductFeature
。
ProductFeature
将包含包含产品ID和featureid的记录(并且每个产品可能包含多个记录。
因此,要检索ID为1的产品的所有功能
SELECT *
FROM product p
INNER JOIN productfeature pf ON pf.productid = p.id
INNER JOIN feature f ON pf.featureid = f.id
WHERE p.id = 1
您需要添加适当的外键,并且可以考虑在视图中封装查询(SQL Server构造,因此不确定MySQL等价物是什么)