代码之家  ›  专栏  ›  技术社区  ›  waroxx

SQL—当多个表具有相同的列时,最好怎么做

  •  0
  • waroxx  · 技术社区  · 6 年前

    在我的方案中,有不同的表和不同的列,但我想存储表何时修改或数据何时存储的数据,因此我添加了一些列来指定这一点。

    我意识到我必须向所有表中添加相同的“modification\u date”和“modification\u time”列,因此我考虑创建一个名为DATA\u INFO的新表,这样我就不需要这样做了,但每个表都有不同的主键,我不知道要将哪个作为外键添加到DATA\u INFO表中。

    我不知道我是否必须把它们全部加起来,或者是否有其他方法来满足我的需要。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Tab Alleman    6 年前

    最好在所有表中都有相同的“modification\u datetime”列,而不是试图将该数据保存在中心表中。

    我们在我工作过的每一家商店都是这样做的。

        2
  •  0
  •   Gordon Linoff    6 年前

    我想强调的是,单独一张桌子是不合理的。缺少明显的外键就是一个暗示。

    与Tab Allerman不同,我创建的表更新的可能性要小得多,因此我在大多数表上增加了三列:

    • CreatedBy --创建行的用户
    • CreatedAt --创建行时
    • CreatedOn --创建表的系统

    最重要的一点是,在许多数据库中,这些信息可以使用 default 值而不是触发器。这是在一行内工作的一大优势。触发器越少越好。