2012-10-25 85 views
0

我目前正在开发一个数据库,它将容纳很多物品,并且想知道哪种设计会更好,因为每个类别有1000到10000个物品。电子商务数据库设计

数据库设计#1

Login Details 
-------------- 
-userID 
-Username 
-Password 
- ETC.... 


User Settings 
-------------- 
-userID 
-Setting 1 
-Setting 2 
-Setting 3 
- ETC.... 



Product Category 
----------------- 
-ID 
-Name 



ALL Items 
----------- 
-ItemID 
-Name 
-Description 
-Price 
-Info 
- ETC.... 
-parentCategoryID 

OR

数据库设计#2

Login Details 
-------------- 
-userID 
-Username 
-Password 
- ETC.... 


User Settings 
-------------- 
-userID 
-Setting 1 
-Setting 2 
-Setting 3 
- ETC.... 



Product Category 
----------------- 
-ID 
-Name 
-tableName 



Electronics 
------------- 
-ItemID 
-Name 
-Desc. 
-Price 
- ETC.... 

Food 
------------- 
-ItemID 
-Name 
-Desc. 
-Price 
- ETC.... 


Books 
------------- 
-ItemID 
-Name 
-Desc. 
-Price 
- ETC.... 


Apparel 
------------- 
-ItemID 
-Name 
-Desc. 
-Price 
- ETC.... 



Others 
------------- 
-ItemID 
-Name 
-Desc. 
-Price 
- ETC.... 

回答

2

选项1将是要走的路。

如果您使用选项2,则每次希望针对不同的产品类型查询数据库时,都必须使用不同的查询,因为您将在不同的中存储不同的产品类型。

存储用户比存储产品的问题少得多。由于价格可能会随时间而变化,因此最好从'产品'表中删除'价格'字段并将其存储在不同的表格中,'价格表'的字段将是产品,价格,从日期(可能到最后) 。

1

对于第二种情况,你没有,如果你要依赖于字符串引用完整性确定表格。

在我看来,选择1是很好地实践(规范化)的做事方式。而且,即使每个类别保持10000行对于现代数据库也不是什么大问题。

+0

我可以硬编码一个包含数据库名称的文件,但是对于选项1,数据库中的1个表格可以有10个类别的〜1m个项目(共计〜1000万个)项目可以正常工作? – Steven10172

+0

需要知道什么样的查询将是常见的。 – smk

+0

搜索:“项目名称”“项目名称和类别”“isbn(books)”和搜索搜索也可以按价格排序 – Steven10172

相关问题