【问题标题】:Should I make specification table referenceable?我应该使规格表可参考吗?
【发布时间】:2009-11-02 06:17:59
【问题描述】:

因为我知道这里有很多专业的数据库核心设计师,所以我决定在 stackoverflow 上问这个问题。

我正在开发一个网站,其主要关注点是为现实世界中可用的所有产品编制索引,例如数码相机、打印机、冰箱等。众所周知,每种产品都有自己的规格。例如,数码相机有它的重量、镜头、快门速度等。每个规格都有一个类型。例如,价格(我将其视为规范)是一个数字。

我认为最标准的方法是创建具有适当类型的指定产品所需的任何规格,并将其分配给产品。因此,必须为每个单独的产品创建 PRICE,并在其上设置类型编号。

所以这是我的问题,是否可以有一个包含所有规格的规格表,例如之前已经创建了带有数字类型的 PRICE,只需要在表格中搜索价格并将其分配给产品。这种方法的问题是我没有看到防止用户创建重复条目的好方法。他必须能够找到他需要的规范(如果之前添加过的话),而且我还希望他知道他找到的规范实际上就是他需要的规范,因为可能有一些具有相同名称的规范但是不同的类型和用法。如果他没有找到它,他会创建它。

有什么想法吗?

-------------- 更新 ------------------ ----------

我的问题不在于数据库的灵活性。我认为在第二种方法中,用户会弄乱规格表!他们会创建数千个重复条目,而且我认为他们找不到合适的规格。

【问题讨论】:

  • 如果你想创建一个完全灵活的数据库;在开始之前先看看一些非 rdbms/sql 之类的系统,例如:CouchDB

标签: database database-design data-modeling product-management


【解决方案1】:

我刚刚回复完Dynamic Table Generation 其中讨论了类似的问题。看看 observation pattern。如果您将“观察”替换为“规范”,将“主题”替换为“产品”,您可能会发现 this model 很有用——您将不需要 Report 和 Rep_mm_Obs 表。

【讨论】:

    【解决方案2】:

    我根据您的要求建议的数据模型:

    SPECIFICATIONS

    • SPECIFICATION_ID,PK
    • SPECIFICATION_DESCRIPTION

    这使您可以拥有多种规格,而无需附加到一个项目上。

    ITEM_SPECIFICATION_XREF

    • ITEM_ID, pk, fk 到ITEMS
    • SPECIFICATION_ID, pk, fk 到SPECIFICATIONS
    • VALUE,PK

    好处:

    1. 将主键设为复合键可确保值集在整个表中是唯一的。祝福或诅咒,具有给定规格的项目可能具有值 0.99 和 1.00 - 这些都是有效的。
    2. 此设置允许将规范与 0+ 项相关联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-02
      • 2014-09-20
      • 2010-10-08
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多