Database design 设计产品数据库

Database design 设计产品数据库,database-design,Database Design,我需要为我的产品设置一个数据库。我需要在此数据库中存储产品名称、产品奖、产品详细信息和产品功能。一个产品有多个功能现在如何设置此数据库 我已经设置了一个包含两个表的数据库 产品详细信息包括id、产品名称、产品详细信息、产品奖和 产品特征具有id、p特征(一个数据库还有一个特征) 对吗?如果正确,我如何在产品和其功能之间建立关系?如何从数据库中检索数据 如果这是错误的,那么我如何才能做到这一点 这是一种常见的关系设计模式,用于解决多对多关系,如您所描述的关系。您需要一个链接表将产品详细信息链接到产

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

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

  • 产品详细信息包括id、产品名称、产品详细信息、产品奖和
  • 产品特征具有id、p特征(一个数据库还有一个特征)
  • 对吗?如果正确,我如何在产品和其功能之间建立关系?如何从数据库中检索数据


    如果这是错误的,那么我如何才能做到这一点

    这是一种常见的关系设计模式,用于解决多对多关系,如您所描述的关系。您需要一个链接表将
    产品详细信息
    链接到
    产品功能

    我将重命名您的表,使您拥有
    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
    

    您需要添加适当的外键,并且可以考虑将查询封装在视图中(SQLServer构造,因此不确定MySQL等价物是什么)。

    除了embo的答案之外,请记住,类似命名的产品功能并不总是代表相同的东西,因此,让后一种产品依赖于它通常是有用的-例如衬衫尺寸与裤子尺寸不同,xs/s/m/l/xl不一定是1/2/3/4/5。