SQL - 当多个表具有相同的列时最好做什么
SQL - What is best to do when multiple tables have the same columns
我的方案中有不同的 tables 和不同的列,但我想存储 table 修改时间或数据存储时间的数据,所以我添加了一些列指定。
我意识到我必须向所有 table 添加相同的 "modification_date" 和 "modification_time" 列,所以我考虑制作一个新的 table 称为 DATA_INFO 所以我不需要这样做,但是每个 table 都有一个不同的 PRIMARY KEY,我不知道要将哪个作为 FOREIGN KEY 添加到 DATA_INFO table.
我不知道我是否必须添加所有这些,或者是否有其他方法可以满足我的需要。
最好在所有 table 中使用相同的 "modification_datetime" 列,而不是试图将数据保存在中央 table。
这就是我们在我工作过的每一家商店所做的。
我想强调的是,单独的 table 对于这个目的是不合理的。缺少明显的外键是一个提示。
与 Tab Allerman 不同,我创建的 table 更新的可能性要小得多,因此我在大多数 table 上增加了三个列:
CreatedBy
-- 创建该行的用户
CreatedAt
-- 创建行的时间
CreatedOn
-- 创建table的系统
最重要的一点是,在许多数据库中,此信息可以使用 default
值而不是触发器来实现。这是在单行中工作的一大优势。触发器越少越好。
我的方案中有不同的 tables 和不同的列,但我想存储 table 修改时间或数据存储时间的数据,所以我添加了一些列指定。
我意识到我必须向所有 table 添加相同的 "modification_date" 和 "modification_time" 列,所以我考虑制作一个新的 table 称为 DATA_INFO 所以我不需要这样做,但是每个 table 都有一个不同的 PRIMARY KEY,我不知道要将哪个作为 FOREIGN KEY 添加到 DATA_INFO table.
我不知道我是否必须添加所有这些,或者是否有其他方法可以满足我的需要。
最好在所有 table 中使用相同的 "modification_datetime" 列,而不是试图将数据保存在中央 table。
这就是我们在我工作过的每一家商店所做的。
我想强调的是,单独的 table 对于这个目的是不合理的。缺少明显的外键是一个提示。
与 Tab Allerman 不同,我创建的 table 更新的可能性要小得多,因此我在大多数 table 上增加了三个列:
CreatedBy
-- 创建该行的用户CreatedAt
-- 创建行的时间CreatedOn
-- 创建table的系统
最重要的一点是,在许多数据库中,此信息可以使用 default
值而不是触发器来实现。这是在单行中工作的一大优势。触发器越少越好。