0

我正在设计一个存储电影相关信息的数据库。我被困在一个问题上,似乎不知道如何解决它。

所以我正在创建一个存储电影的数据库,对于我的电影表,这些是它的属性

-movieID NUMBER PRIMARY KEY,
-title VARCHAR(10),
-genres genre_varray,
-producers
-director
-cast

我将为制片人、演员和导演创建另一个表格。我的问题是对于现场制作人和演员我必须插入一个人员列表和演员我必须为每个演员添加一个角色,我不知道我会怎么做,我正在考虑使用嵌套表?另一个问题是,一个人可以是演员、导演、制片人或所有。

到目前为止我所拥有的是

supertype person_type - personID, name, sex
subtype actor_type - country
subtype director_type - country
subtype producer_type - company
table of people of type person_type
table of movie_people - profession

谢谢你的帮助。

4

2 回答 2

4

任何人都可以在一部电影中扮演一个或多个角色,不同的电影所扮演的角色会有所不同。

我将有一张人员表、一张电影表、一张角色类型表(例如:演员、导演、制片人等),以及一张将所有三者与(PersonID、MovieID、RoleID)字段链接的表

我还将为 MovieGenres 提供一个单独的表,而不是您详细说明的数组。

于 2012-10-18T12:57:10.933 回答
2

总共需要六个表:

GENRES
GenreID
GenreName

ROLES
RoleID
RoleName  

PEOPLE
PersonID
PersonName

MOVIES
MovieID
MovieName
MovieYear

CASTLIST
CastID
MovieID
PersonID
RoleID 

MOVIEGENRE
MovieID
GenreID

一个人可以以多个角色出现在电影的演员表中,这就是为什么我给表指定了代理 ID。否则,您将需要一个由所有三个外键组成的主键(并且假设您只想列出一个扮演三个不同角色的人 - 查看 Strangelove 博士)。

编辑以包括 MovieGenre 表。

于 2012-10-18T13:19:34.607 回答