可能重复:
多对多关系中的问题
我有一张电影表和一张类别表。我想为一部电影再注册一个类别。和几部电影的类别。也就是说,一个关系N:N。我如何在php和Mysql中做到这一点?
例如:类别 1 -> 电影 1 和电影 2
电影 2 -> 类别 1 和类别 2
所以它看起来像这样
Movie
id | desc
Category
id | desc
MoviesCategories
id | movieID | categoryId
您的选择将打开MoviesCategories
,看起来像这样
SELECT *
FROM
MoviesCategories INNER JOIN Category ON MoviesCategories.CategoryId = Category.Id
INNER JOIN movie ON MoviesCategories.MovieID = Movie.ID
你需要一个表来处理这种关系。像这样:
MovieToCategory
ID
CategoryID
MovieID
或者,您可以创建一个复合主索引,仅允许每部电影进行一次类别组合:
MovieToCategory
CategoryID
MovieID