0

嗨,我正在尝试为电子商务网站设计一个数据库,但我似乎找不到正确的方法,这就是我目前所拥有的: 图式

问题出现在产品上。我有 66 种类型的产品,其中大多数都有不同的领域。我必须 id,但它们似乎都不太实用:

选项 A:

起初我以为我要为每种产品类型制作一个表格,但那样会导致 66 个表格,这不是很容易维护。我已经开始这样做了,我创建了 Product_Notebook 和 Product_NotebookBag 表。然后我停下来想了一下,这个解决方案不是很好。

选项 B

在考虑了更多之后,我想出了选项 B,它将数据存储到一个名为 description 的单独字段中。例如:

"Color : Red & Compatibility : 15.6 & CPU : Intel"

在这种方法中,我可以在从数据库中检索字符串后对其进行操作。

我知道这种方法也不是一个好主意,这就是为什么我要求一种更实用的方法。

4

2 回答 2

1

只需创建一个 ProductProperties 表并将所有可能的字段放在那里。(实际上,您可以在 Products 表中添加更多字段)

然后,当您列出您的产品时,只需使用您需要的字段。

当然,也有许多共同的领域。

顺便说一句,如果您正在考虑将数据存储在数组中(选项 B?),您以后会后悔的。您将无法以这种方式轻松地对表格进行排序。

此外,该选项将使通过特定特征找到特定项目变得困难。

于 2012-12-23T20:01:37.847 回答
1

在 Stack Overflow 上查看我对这个问题的回答。对于您的情况,我建议使用实体属性值 (EAV)。

正如我在链接答案中解释的那样,几乎所有时间都应避免 EAV,原因有很多。但是,跟踪在线目录的产品属性是一种应用,其中 EAV 的问题很少,而且好处很广泛。

于 2012-12-23T20:17:54.847 回答