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

时间:2014-02-13 09:25:46

标签: mysql sql database database-design

我对数据库设计有疑问 例如,我有两种类型的对象,一种是电影,另一种是TvShow 当然,也有一些相同的领域,如名称故事情节等 还有很多不同的专栏,如季节插曲等 实际上每一集都是电影般的。

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

B)两个名为movie和TvShow的表。

哪个更好,为什么?谢谢〜

2 个答案:

答案 0 :(得分:0)

除非你有特殊的理由不这样做,否则我建议使用三个表来替代“A”。特别是如果你需要从其他表格中引用一般视频。

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

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

答案 1 :(得分:0)

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

即使你的插页在B中也会更快,因为在A中,需要2个插页。