我在一个小型学校项目上工作,我在SQL中创建一个电影数据库。我创建了表格,并想知道我是否会遇到我创建的模型的任何问题。
提前致谢。
当前图表
编辑:
这是新图
答案 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。
干杯