Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为电子商务商店设计数据库_Database_Database Design - Fatal编程技术网

Database 为电子商务商店设计数据库

Database 为电子商务商店设计数据库,database,database-design,Database,Database Design,嗨,我正在尝试为一个电子商务网站设计一个数据库,但我似乎找不到一个正确的方法,这就是我目前所拥有的: 问题出现在产品上。我有66种产品,大多数都有不同的领域。我必须识别,但它们似乎都不太实用: 选项A: 起初,我想为每种产品类型制作一个表,但这样会产生66个表,这不太容易维护。我已经开始这样做了,我创建了Product_笔记本和Product_笔记本书包表。然后我停下来想了想,这个解决方案不是很好 选项B 在仔细考虑之后,我提出了选项B,它将数据存储到一个名为description的单独字段中

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

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

选项A:

起初,我想为每种产品类型制作一个表,但这样会产生66个表,这不太容易维护。我已经开始这样做了,我创建了Product_笔记本和Product_笔记本书包表。然后我停下来想了想,这个解决方案不是很好

选项B

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

"Color : Red & Compatibility : 15.6 & CPU : Intel"
在这种方法中,我可以从数据库中检索字符串并对其进行操作


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

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

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

当然,也有许多共同领域

顺便说一下,如果您正在考虑将数据存储在阵列中(选项B?),您以后会后悔的。这样你就不能轻易地把你的桌子分类了

此外,该选项将使根据特定特征查找特定项变得困难。

请参阅我在堆栈溢出上的回答。对于您的情况,我建议使用实体属性值(EAV)

正如我在链接的答案中所解释的,出于许多好的原因,EAV几乎总是要避免的。然而,跟踪在线目录的产品属性是一个应用程序,其中EAV的问题最小,好处广泛