database - 在数据库中存储类别

标签 database database-design relational-database

如果某个对象可以是视频、音频故事,是为每个类别有一个单独的表更好还是有一个 “类型” 字段包含大量“音频”“视频”“故事” 条目?

1) 假设每个对象只能是一种类型

2) 假设每个对象可以是多种类型(在这种情况下,最好定义一个 ObjectType 表来存储对象和类型之间的关系,对吧?)

(我使用的是关系型数据库)

谢谢!

最佳答案

建议的架构如下。通过使用 ID 而不是字符串,您可以减少存储量以及数据库引擎在连接时所需的工作量。您还可以更轻松地重命名类别 - 不必更新使用类别的无数行,只需更新一个类别行即可。

每个项目只有一个类别:

ITEM:
ID
CATEGORYID
...

CATEGORY:
ID
NAME
...

每个项目有多个类别:

ITEM:
ID
...

CATEGORY:
ID
NAME
...

ITEMCATEGORY:
ITEMID
CATEGORYID

关于database - 在数据库中存储类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6159655/

相关文章:

mysql - 关于数据库建模

mysql - 如何设计这个简单的数据库?

sql - ERP 的最佳默认事务隔离级别是多少(如果有)?

sql - 在 SQL Server 数据库中使用单行配置表。馊主意?

sql-server - 获取 select 查询返回结果的模式

php/sql ...我应该如何使用 50mb 文件中的数据?

PHP MYSQL Join 并输出不匹配的结果

database - 一对多与多对多关系

mysql - MySql INFORMATION_SCHEMA.COLUMNS 中的 DATA_TYPE 和 COLUMN_TYPE 有什么区别

php - 禁用 MySql 错误