Mysql 数据库设计一个表或两个表

Mysql 数据库设计一个表或两个表,mysql,sql,database,database-design,Mysql,Sql,Database,Database Design,我有一个关于数据库设计的问题。 例如,我有两种类型的对象,一种是电影,另一种是电视剧。 当然,也有一些相同的字段,如姓名演员故事线等。 也有很多不同的专栏,如季节插曲等。 其实每一集都像电影 可能有大量的数据。 如何设计? A) 一个表名为video,两个表名为movie和TvShow。视频表具有公共列 B) 两张名为“电影”和“电视秀”的桌子 哪一个更好,为什么?谢谢~除非您有特殊的理由,否则我建议您选择“A”,包括三个表格。特别是如果您需要参考其他表格中的视频 使用公共主键,其中TVshow

我有一个关于数据库设计的问题。
例如,我有两种类型的对象,一种是电影,另一种是电视剧。
当然,也有一些相同的字段,如姓名演员故事线等。
也有很多不同的专栏,如季节插曲等。
其实每一集都像电影

可能有大量的数据。
如何设计?
A) 一个表名为video,两个表名为movie和TvShow。视频表具有公共列

B) 两张名为“电影”和“电视秀”的桌子


哪一个更好,为什么?谢谢~

除非您有特殊的理由,否则我建议您选择“A”,包括三个表格。特别是如果您需要参考其他表格中的视频

使用公共主键,其中TVshow和MONIVE两个表中的主键也是视频中主键的外键。现在,通过使用三个表之一的外键,您可以参考电视节目、电影或视频


性能将比使用两个表(或使用单个表的解决方案)慢,因为现在数据分布在多个地方,查询将稍微复杂一些。如果您确定需要更好的性能,则可能需要使用不同的设计。但是,假设性能将是一个问题,这是一个非常常见的错误。有了适当的索引,即使在非常大的数据集中搜索,标准关系数据库也可以非常快。

有一个视频表和两个表,电影和电视节目会让事情变得复杂一些。如果要检索所有电视节目,则需要指向视频表的链接。当然,在缺点方面,您会有一些“重复”字段值,但由于性能至关重要,并且与您的选择直接相关,因此最好选择选项B


即使在B中插入也会更快,因为在A中,需要两个插入。

使用一个名为video的表并包含所有列如何?@wmmj23:使用一个表,您不能编写只引用电影或电视节目的外键,并且表中会有很多空值。表是关于演员在电影中播放一行,电视节目。如果我质疑一个演员的所有电影和电视节目,A计划更好,对吗?我只是使用参与者ID查询两个表,而不是计划B中的三个。你能告诉我什么情况下计划B会比计划A更快吗?Thanks@wmmj23:如果您需要有关电影的所有信息,则计划B将更快。在方案B中,只有一个表查找,而在方案A中有两个表查找。计划B可能为0.03秒,而计划A可能为0.06秒。