0

我有一个数据库 MOVIES,它有 2 个表。1 是 MOVIE,另一个是 GENRE。

我希望能够让 MOVIE 的行条目与 GENRE 表中的多行相关联。这可以只用 MOVIE 表中的 1 列来完成吗?

我看过电影数据库的例子,但它们只允许将一种类型映射到一部电影。有没有办法让多个类型属于一个单一的条目电影?我正在使用 mySQL 创建数据库。

4

2 回答 2

3

您应该有第三个表,MOVIE_GENRE它实现了这种多对多关系。MOVIE它在表和GENRE表中都有外键。查找列表的所有电影及其类型的查询如下所示:

SELECT m.title,
       IFNULL(GROUP_CONCAT(g.name), "") genres
FROM Movie m
LEFT JOIN Movie_Genre mg ON m.id = mg.movie_id
JOIN Genre g ON g.id = mg.genre_id
GROUP BY m.id
于 2013-05-04T00:23:17.410 回答
2

您需要一个包含 2 个列的多对多或连接表,

电影 ID 和流派 ID

拥有这种结构将允许您将一部电影链接到任意数量的流派

于 2013-05-04T00:19:27.847 回答