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

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

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

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

有任何想法吗?

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

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

有帮助吗?

解决方案

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

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+项目。

其他提示

我刚刚回答完 动态表生成其中讨论了类似的问题。看看 观察模式. 。如果将“观察”替换为“规范”,将“主题”替换为“产品”,您可能会发现 这个型号 有用——您不需要 Report 和 Rep_mm_Obs 表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top