gpt4 book ai didi

mysql - 电视剧应用程序的数据库设计

转载 作者:行者123 更新时间:2023-11-28 23:55:36 24 4
gpt4 key购买 nike

我正在开发一个关于电视节目的网络应用程序。我需要数据库设计方面的帮助。

我列出了我需要的东西,但我不知道如何设计它。我有基本表。系列、剧集、季节等。我不能做的是如何将人们与剧集/系列联系起来。这是我的 list :

应该有多个people 类型。 Actor /导演/编剧/嘉宾等

我不认为为每种类型创建单独的表是个好主意。所以应该有一个 people 表。我需要将类型存储在某处。

一个人可能在一个或多个系列中。

这可以通过 people_serie 表和 peopleseries 表的外键来完成。但我也需要一种方法将一个人与 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com