我有一个数据库 MOVIES,它有 2 个表。1 是 MOVIE,另一个是 GENRE。
我希望能够让 MOVIE 的行条目与 GENRE 表中的多行相关联。这可以只用 MOVIE 表中的 1 列来完成吗?
我看过电影数据库的例子,但它们只允许将一种类型映射到一部电影。有没有办法让多个类型属于一个单一的条目电影?我正在使用 mySQL 创建数据库。
我有一个数据库 MOVIES,它有 2 个表。1 是 MOVIE,另一个是 GENRE。
我希望能够让 MOVIE 的行条目与 GENRE 表中的多行相关联。这可以只用 MOVIE 表中的 1 列来完成吗?
我看过电影数据库的例子,但它们只允许将一种类型映射到一部电影。有没有办法让多个类型属于一个单一的条目电影?我正在使用 mySQL 创建数据库。
您应该有第三个表,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
您需要一个包含 2 个列的多对多或连接表,
电影 ID 和流派 ID
拥有这种结构将允许您将一部电影链接到任意数量的流派