我正在开发一个关于电视节目的网络应用程序。我需要数据库设计方面的帮助。
我列出了我需要的东西,但我不知道如何设计它。我有基本表。系列、剧集、季节等。我不能做的是如何将人们与剧集/系列联系起来。这是我的 list :
应该有多个people
类型。 Actor /导演/编剧/嘉宾等
我不认为为每种类型创建单独的表是个好主意。所以应该有一个 people
表。我需要将类型存储在某处。
一个人可能在一个或多个系列中。
这可以通过 people_serie
表和 people
和 series
表的外键来完成。但我也需要一种方法将一个人与 episodes
联系起来。
一个 Actor 可以扮演一个或多个角色。
这可以通过 person_role
表来完成。
这就是它变得复杂的地方。
- 角色可能出现在连续剧的 1 集或多集中。
- 一个人可能属于一个系列中的多个类型。例如: Actor 和导演
我希望我说清楚问题是什么。
最佳答案
好吧,不拆分People
表是正确的。
首先要做的是添加一个 Roles
表,它将包含角色 ID 和角色标题(每列应该是唯一的 - 你不希望 Actor 有 2 个不同的 ID
角色...)
TblRoles
RoleId RoleTitle
-------------------
1 Director
2 Writer
3 Actor
然后您添加一个PersonToSeries
表,它将保存它自己的id、人物的id 和系列的id。
这张 table 将容纳所有从事该系列工作的人,无论是正式员工还是 1 集嘉宾。
TblPersonToSeries
PTSId PersonId SeriesId
---------------------------
1 1 1
2 3 8
3 4 7
您需要的下一个表是 PersonToEpisode
表,它将保存 PersonToSeries
id 和剧集 id,以及角色 id。
在此表中,您只需保留整数 ID,因此它的重量非常轻,您将为 PersonToSeries
中的每条记录指定与其相关的剧集。
TblPersonToEpisode
PTEPTSId RoleId
-------------------
1 2
2 3
3 1
当一个人通常是一个系列的导演,但在该系列的一集中猜测出场时,您可以简单地在 PersonToEpisode
中为该 PersonToEpisode
添加 2 行> 具有不同的角色 ID。 (一个用于 Actor
,一个用于 Director
)
TblPersonToEpisode
PTEPTSId RoleId
-------------------
13 1
13 2
关于mysql - 电视剧应用程序的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781775/