【问题标题】:Two DB tables vs one DB Table两个数据库表与一个数据库表
【发布时间】:2008-11-26 11:11:04
【问题描述】:

我有一张音乐专辑表。我有第二张专辑封面表。不幸的是,并非每张专辑都有一些专辑封面数据。因此,我需要在音乐和专辑封面之间进行 OUTER JOIN。

假设:两个表都只包含 int 和 varchars .. 没有 blob 等。

问题

  • 是否最好将两个表合并为一个以减少外部连接要求?

【问题讨论】:

    标签: database-design


    【解决方案1】:

    我可以看到将它们放在单独的表格中的唯一原因是一张专辑是否可以包含多件艺术品。如果每张桌子只包含并且永远只包含一件艺术品,那么将它们放在同一张桌子上应该没问题。如果您在许多不同的实例中连接这两个表,您可能需要创建一个视图以简化您的 SQL 语句。

    【讨论】:

      【解决方案2】:

      只需使用一张表,对于没有艺术的专辑使用空值。我不认为拥有第二张桌子有什么好处……除非你有很多专辑共享相同的艺术。

      【讨论】:

        【解决方案3】:

        在这种情况下,两张表通常意味着一对多的关系,这可能不是您想要的,尽管我猜有些专辑带有多个艺术品。

        所以理论上您应该将这些表合并为一个,除非您有充分的理由将它们拆分为两个。为什么要将它们作为两个表?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-29
          • 1970-01-01
          • 2019-10-12
          • 2019-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多