具有多个外键的键

时间:2013-05-04 00:16:56

标签: mysql database database-design relational-database

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

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

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

2 个答案:

答案 0 :(得分:3)

您应该有第三个表MOVIE_GENRE来实现这种多对多关系。它在MOVIEGENRE表中都有外键。查找列表所有类型的电影的查询将如下所示:

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

答案 1 :(得分:2)

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

MovieS和GenreID

拥有此结构将允许您将单个电影链接到任意数量的类型