用于电影数据库搜索系统的SQL

Yal*_*ber 3 sql database-design

我正在建立一个电影数据库.每部电影都有场地类型,演员,导演等.现在我的问题是如何设计数据库并编写SQL,因为每部电影都可以有多个演员或导演等.

现在我的桌面电影数据库设计是:

  • movie_id
  • 电影标题
  • actors_id
  • directors_id
  • genre_id

但是这样在电影中放入多个演员似乎更难.

Mar*_*ers 8

演员和电影之间有多对多的关系.每个演员都可以在很多电影中出演,每部电影都有很多演员.要在SQL中建模多对多关系,可以使用联结表(也称为交叉引用表,以及其他名称).

+-------------+
| Movie       |
+-------------+
| Id          |<----+
| Title       |     |
| Year        |     |
+-------------+     |
                    |
+-------------+     |
| Actor       |     |
+-------------+     |
| Id          |<-+  |
| Name        |  |  |
| Birthdate   |  |  |
+-------------+  |  |
                 |  |
+-------------+  |  |
| Movie_Actor |  |  |
+-------------+  |  |
| ActorId     |--+  |
| MovieId     |-----+
+-------------+

要查询ID为153的影片中所有演员的姓名:

SELECT Actor.Name
FROM Actor
JOIN Movie_Actor ON Movie_Actor.ActorId = Actor.Id
WHERE Movie_Actor.MovieId = 153
Run Code Online (Sandbox Code Playgroud)