N:N Relation Mysql

时间:2012-11-23 17:04:49

标签: mysql

  

可能重复:
  problem in many to many relationship

我有一张电影表和一个类别表。我想再为电影注册一个类别。几个电影的类别。也就是说,关系N:N。我如何在php和Mysql中做到这一点?

例如: 分类1 - >电影1            和电影2

电影2 - >分类1         和分类2

2 个答案:

答案 0 :(得分:2)

你需要一张表来表达这种关系。像这样:

MovieToCategory
    ID
    CategoryID
    MovieID

或者,您可以创建一个复合主索引,仅允许每个影片进行一次类别组合:

MovieToCategory
    CategoryID
    MovieID

答案 1 :(得分:2)

对于many to many relationship,您需要第三个名为junction table

的表格

所以它看起来像那样

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