Mysql 电子商务数据库设计

Mysql 电子商务数据库设计,mysql,database,database-design,Mysql,Database,Database Design,我现在正在开发一个数据库,它将容纳很多物品,我想知道哪种设计会更好,每个类别有1000到10000个物品 数据库设计#1 或 数据库设计#2 对于选项2,如果要依赖字符串来标识表,则不具有引用完整性 在我看来,选项1是实践良好(规范化)的做事方式。此外,对于现代数据库来说,即使每个类别拥有10000行也不是什么大不了的事。选项1将是一条可行之路 如果使用选项2,则每次希望查询有关不同产品类型的数据库时,都必须使用不同的查询,因为您将在不同的表中存储不同的产品类型 存储用户比存储产品问题小得多。由

我现在正在开发一个数据库,它将容纳很多物品,我想知道哪种设计会更好,每个类别有1000到10000个物品

数据库设计#1

数据库设计#2


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


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

选项1将是一条可行之路

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


存储用户比存储产品问题小得多。由于价格会随时间变化,最好从“products”表中删除“price”字段,并将其存储在另一个表“pricelist”中,该表的字段为product、price、fromdate(可能还有tilldate)。

我可以硬编码一个包含数据库名称的文件,但对于选项1,将有10类~1m个项目(总计约1000万个)一个数据库中的一个表中的项目是否可以?需要知道常见的查询类型。按“项目名称”“项目名称和类别”“按isbn(图书)”搜索和搜索也可以按价格排序
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
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....