设计产品数据库

时间:2011-06-22 16:45:06

标签: database-design

我需要为我的产品设置数据库。我需要在此数据库中存储产品名称,产品奖,产品详细信息和产品功能。一个产品现在有多个功能如何设置此数据库?

我已经设置了一个包含两个表的数据库

  
      
  1. Product_detail有id,p_name,p_detail,p_prize和
  2.   
  3. Product_ features具有id,p_功能(一个数据库还有一个羽毛)
  4.   

这是对的吗?如果正确,那么我如何才能在产品及其功能之间建立关系?我如何从数据库中检索数据?

如果这是错的,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

这是一种常见的关系设计模式,用于解决您描述的多个关系。您需要一个链接表才能将Product_detailProduct_features相关联。

我会重命名您的表格,以便您拥有ProductFeature和链接表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等价物是什么)