mysql – 电影数据库,存储多种类型

我正在尝试构建一个存储电影信息的数据库.

    Title
    Plot
    Genre
    Rating
    Director

困扰我的唯一一件事是,大多数电影不仅仅有一种类型,我正在努力弄清楚如何将它存储在MySQL数据库中.起初我以为我只有一个表并将所有类型存储在一列中,用逗号分隔它们,当我想要检索它们时使用PHP将它们分开,但我不确定这是最好的方法因为我认为我很难排序和搜索特定的类型,例如当列包含’恐怖,惊悚,行动’时的恐怖.

最佳答案
我建议你应该遵循以下结构:

tablename: movies

movieid,title,plot,rating,director

> sample data:
> 
> 1 titanic Bollywood   10  James Cameron

tablename: genres

genreid,genre

> sample data:
>  1    Horror
>  2    Thriller
>  3    Action
>  4    Love

tablename: moviegenres

moviegenresid,movieid,genreid

> sample data:
> 1 1   2
> 2 1   4

查询是:

select m.*,group_concat(g.genre)
from movies m inner join moviegenres mg
on m.movieid=mg.movieid
inner join genres g
on g.genreid=mg.genreid
group by m.movieid
;

fiddle

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...