SQL:当1个字段具有多个类别时如何设计数据库?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL:当1个字段具有多个类别时如何设计数据库?相关的知识,希望对你有一定的参考价值。
我正在尝试为漫画网站建立数据库。我计划有:表1:漫画(id,标题,genre_id,...)表2:流派(ID,名称,...)但是,每个漫画可以同时具有多种类型(浪漫,冒险等)。因此,如果按上述方式设置数据库,则必须为Table1中的1个漫画创建多行,这些行具有相同的其他信息(id,title,...),但具有不同的genre_id。这似乎是错误的...有更好的方法吗?
答案
您要关联或junction表:
create table comic_genres (
comic_genres id generated always as identity primary key,
comic_id int references comics(comic_id),
genre_id int references genres(genre_id)
);
您可以在表中包括其他信息,例如每行的创建日期。
另一答案
您可以创建称为流派的多对多关系表。
此流派表存储了漫画所属的所有流派。
一本漫画书可以是多种类型的一部分,而一类漫画可以是多种类型的漫画的一部分。这样,您可以使漫画书表保持规范化,而无需创建重复项。
Genre_mapping表示例:
comic_id genre_id
1 1
1 2
2 2
3 1
3 5
3 5
流派表:
genre_id genre_name
1 Comedy
2 Action
3 Romance
4 Adventure
5 Thriller
以上是关于SQL:当1个字段具有多个类别时如何设计数据库?的主要内容,如果未能解决你的问题,请参考以下文章