-1

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

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

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

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

有任何想法吗?

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

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

4

2 回答 2

1

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

于 2009-11-01T22:09:21.217 回答
0

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

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+ 项相关联。
于 2009-11-01T22:01:56.860 回答