【问题标题】:How to setup database tables with multiple similar attributes如何设置具有多个相似属性的数据库表
【发布时间】:2011-01-18 04:19:14
【问题描述】:

有产品、部分和属性。

每个属性最多可以有 5 或 6 个选项。

示例:电源

10 Volt
15 Volt
20 Volt

总共大约有 10 个产品,每个产品最多应用 17 个属性。

示例:产品 1

power - 10 volt
color - red, yellow
link - online, offline

您将如何设置表格?我难住了。我正在考虑为每个属性创建一个单独的表,然后是产品表和部分表。

products 表将包含与它和部分相关的属性的外键。这有意义吗?

【问题讨论】:

  • 是相关产品的版块组吗?

标签: php mysql database database-design data-structures


【解决方案1】:

这很常见。您可以拥有一个包含一些通用属性的基本产品表,例如...

产品 -------- 产品编号 产品名称 描述 价钱

然后您可以针对不同的产品类型扩展该表。所以你可以有一张像

产品电气 ----------------- 产品编号 电压 瓦特 电池尺寸

或者……

产品服饰 --------------- 产品编号 颜色 尺寸 材料

然后,当需要时,您可以像这样将扩展表连接到核心产品表......

选择 p.ProductID、p.ProductName、p.Description、pa.Color、pa.Size、pa.Material 来自产品 p 加入ProductApparel pa 在 pa.ProductID = p.ProductID 其中 pa.Size = "XXL"

通过这种方式,您可以在整个系统中使用紧凑的核心产品表。当您需要查看额外属性时,您可以轻松地将它们加入到核心产品表中。

【讨论】:

    【解决方案2】:

    我想有一个单独的 每个属性的表,

    不要为每个属性创建单独的表,这不符合您的目的。

    为每个产品、部分和属性创建单独的表,并使用 PK 和 FK 相应地连接它们。

    【讨论】:

    • 嗯,这是我的第一个想法。但我担心属性表会失控
    • @jrutter:不,不应该,您需要在同一张表中用产品的对应FK标识每个属性,并且可以为一个产品插入多个记录(属性)。谢谢....
    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多