SQL电影数据库图

时间:2013-12-03 09:05:58

标签: sql sql-server database diagram

我在一个小型学校项目上工作,我在SQL中创建一个电影数据库。我创建了表格,并想知道我是否会遇到我创建的模型的任何问题。

提前致谢。

当前图表 enter image description here

编辑:

这是新图

enter image description here

3 个答案:

答案 0 :(得分:0)

MovieDetails是糟糕的设计。每个actor需要一行MovieDetails,而导演将是相同的,这是数据复制。相反,Movie表应该有一个外键引用导向器,然后MovieActor表应该代表电影和演员之间的多对多关系。

从技术上讲,由于表中有相同的数据,因此也没有理由为Directors和Actors提供不同的表。你也可以拥有一个包含两者的Person表。

答案 1 :(得分:0)

如何(我只显示相关列)

movie table
-----------
id
title


person
------
id
name


cast table
----------
movie_id
person_id
movie_role_id (actor, director, ...)


role_type table
----------------
id
name   (actor, director, ...)


genres table
------------
id
name


movie_genres table
------------------
movie_id
genre_id

答案 2 :(得分:0)

我会考虑以下结构:

movie(id, title, year, rating, plot, length)

actor(id, first name, last name, nationality, birth_date)
director(id, first name, last name, nationality, birth_date)

movie_x_actor(movie_id, actor_id)
movie_x_director(movie_id, director_id)

这当然只是最简单的例子。 例如,您可以添加movie_series表,如:

movie_series(id, title)

movie_x_movie_series(movie_id, series_id, plot_order_number)
和@Juergen描述的一样,电影通常属于不止一种类型,所以:

genres(id, genre_name, genre_description)
movie_x_genres(movie_id, genre_id)

你一定要看看one-to-many and many-to-many relationships between rows in tables

干杯