拥有一个可以多种方式解释的数据库是错误的

时间:2013-06-19 01:04:37

标签: mysql database

我正在创建一个程序来跟踪电影/节目的制作。这是一个截图(它是高分辨率PNG,所以如果你看不清楚,请在新标签中打开)

enter image description here

您可以拥有作家,导演,制片人......所有用户的合作者。然后,这些用户可以在节目或节目或场景中的剧集上进行协作。问题是我打算将它用作枚举的方法。因此,我希望合作者成为 之一的作家,导演,制片人,摄影师或摄像师。更大的问题是我希望他们在只有一个项目上进行协作。因此,我希望他们在一集中的单个场景上进行协作(暂时忽略什么构成'协作')。或者,我可能希望他们合作制作整个剧集,而不是任何特定的场景。情节看起来更加反直觉。看起来plot行指向所有三个sceneepisodeshow表。这也是一种使用枚举的方式,使得情节仅用于节目,或剧集或场景。

我应该去制作具体的表格Show_PlotEpisode_plotScene_Plot,还是这样呢?

1 个答案:

答案 0 :(得分:3)

当您只需向现有表添加约束以强制执行所需的行为时,无需添加任何其他表并增加数据模型的复杂性。我不是MySQL专家,但我确信您可以创建基于函数的约束来满足您需要的任何架构限制。这也将消除可能由多个数据访问应用程序(由您以外的人编写)引起的软件级约束问题。约束消除了有关数据库用例的任何歧义。