database-design - 在数据库中存储类别和产品类型的最佳方式

标签 database-design

我有三种产品类型。以后会更的。 我也有产品类别。类别不能有多个产品类型。那么,我应该如何保留类别。

1.id |父 ID |姓名

我会将产品类型设置为根类别。
例如:

Electronic > computer > laptop 

Electronic 的父 ID 将为 0,下一个类别将因此链接。

  1. id |父 ID |产品类型 |姓名

我将从 product_type 获取电子产品,计算机的 parent_id 将为 0。

哪种方式更好?

最佳答案

对于类别:

ID | Name | Parent_ID

(父ID为类别树)

对于产品:

ID | Category_ID | Name | Description | Other

假设类别树是这样的

Computers [ID: 1 | Parent: 0]
 |-Laptops [ID: 2 | Parent: 1]
 |-Desktop [ID: 3 | Parent: 1]
 |-Printers [ID: 4 | Parent: 1]
 |  |-Brand #1 [ID: 5 | Parent: 4]
 |  |-Brand #2 [ID: 6 | Parent: 4]
 |-Other stuff [ID: 7 | Parent: 1]

然后,如果你想显示来自的所有产品,例如Printers , 只需递归从 Printers 获取所有项目类别及其子类别。

长话短说

第一种方式更好

关于database-design - 在数据库中存储类别和产品类型的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15741398/

相关文章:

sql - 两张 table 还是一张 table ?

php - 使用一个表来保存另一个更大表的 COUNT/SUM 是不是糟糕的设计?

mysql - 具有主要 BELONGS_TO 的 HAS_MANY 的关系数据库设计

mysql - 测验网站的 ORM 数据库设计

MongoDB 数据建模 : any drawbacks in using lots of databases?

mysql - 当我将超过 1600 个(大约)帖子导入 Wordpress 时,我的网站崩溃了,是否有数据库限制?

mysql - MySQL中如何替换一个字段中的两个子字符串并将结果插入到另一字段中

SQL Server - 数据库设计 - 数据完整性 - 强制属性值 W/O 触发器

sql - 如果我使用 TEXT 数据类型存储数字会有任何不良影响

javascript - 如何使用 sequelize-hierarchy 在 Node.js 中对同一级别的项目进行排序?