电子商务数据库设计

时间:2012-10-25 04:19:54

标签: mysql database database-design

我目前正在开发一个包含大量项目的数据库,并且想知道哪个设计会更好,每个类别有1000个到10,000个项目。

数据库设计#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 个答案:

答案 0 :(得分:2)

选项1将是最佳选择。

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

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

答案 1 :(得分:1)

对于选项2,如果要依赖字符串来标识表,则不具有参照完整性。

在我看来,选项1是良好实践(规范化)的做事方式。此外,即使每个类别保留10000行也不是现代数据库的重要内容。