我正在做一个爱好项目,创建我自己的电影数据库,其中包含评级、流派、发行日期以及哪些演员与哪些电影相关联(将来从演员搜索中分离电影)。
我有一个包含具有一些属性的电影的表格,其中目前的一个属性应该是该电影中包含的演员。我知道我无法在表中每一行(电影)的单元格中存储字符串列表(演员姓名)。但是,这里的最佳实践是什么?使用MovieActor创建另一个表并链接每个表连接到哪些电影?如果演员连接到更多电影怎么办?
我在自己的本地主机数据库中运行Microsoft SQL Server Management Studio,并且刚刚设置了Movie表,我发现我可能会遇到此问题。
我希望得到一个包含电影的表格,将来能够搜索电影,找到它们的属性并找出哪些演员与该电影有关。还可以根据我选择的演员过滤电影。
你拥有的是一个many-to-many relationship
。在构建关系数据库时,这将由电影表、演员表组成。然后是一个"联结"或"联接"表,其中包含电影和演员的外键。然后,您可以使用此"交汇点"表进行联接,以获取特定电影中的所有演员,反之亦然,获取特定演员参与的所有电影等。
示例图:
Table Movie Table ActorMovie Table Actor
MovieId | MovieName MovieId | ActorId ActorId | ActorName
1 jaws 1 1 1 Guy1
2 star wars 1 2 2 Guy2
2 1
正如你所建议的,通常的做法是有一个中间MovieActors
表,它链接哪些电影有哪些演员。
喜欢这个:
Movie Actor
1 2
1 3
1 4
2 2
2 5
您将通过外键 (FK) 将 ID 与其各自的表链接。