我正在尝试构建一个存储电影信息的数据库.
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
;