1

我目前正在开发一个可以容纳大量项目的数据库,并且想知道如果每个类别有 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

或者

数据库设计#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....
4

2 回答 2

2

选项1将是要走的路。

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

与存储产品相比,存储用户的问题要少得多。由于价格会随时间而变化,最好从“产品”表中删除“价格”字段并将其存储在另一个表“价格表”中,其字段为产品、价格、起始日期(可能还有截止日期) .

于 2012-10-25T06:23:39.670 回答
1

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

在我看来,选项 1 是实践良好(规范化)的做事方式。此外,即使每个类别保存 10000 行,对于现代数据库来说也不是什么大问题。

于 2012-10-25T04:32:46.033 回答