gpt4 book ai didi

SQL历史表设计

转载 作者:太空狗 更新时间:2023-10-30 01:40:18 26 4
gpt4 key购买 nike

我需要设计一个历史表来跟踪编辑时特定记录上发生更改的多个值。

例子:
用户会看到一个用于编辑记录的页面。

头衔:先生
姓名:乔
电话:555-1234
出生日期:1900-10-10

如果用户更改了这些值中的任何一个,我需要跟踪旧值并记录新值。

我想到了使用这样的表格:

历史
----------------

编号
修改用户
修改日期
表名
记录编号
旧值
新值

这样做的一个问题是每次编辑都会有多个条目。我正在考虑用另一张 table 将它们分组,但您仍然遇到同样的问题。

我也在考虑在历史表中保留该行的副本,但这似乎也没有效率。

有什么想法吗?

谢谢!

最佳答案

我建议,对于要跟踪历史记录的每个表,您都有一个具有相同格式的第二个表(即 tblCustomer 和 tblCustomer_History),外加一个日期列。

每当进行编辑时,您都会将旧记录连同日期/时间插入到历史表中。这很容易做到并且需要很少的代码更改(通常只是一个触发器)

这样做的好处是让您的“真实”表尽可能小,但可以为您提供所有所做更改的完整历史记录。

但最终,这将取决于您希望如何使用这些数据。如果只是为了审计目的,这种方法很简单,除了额外的磁盘空间和对主系统的影响很小或没有影响外,几乎没有缺点。

关于SQL历史表设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com