gpt4 book ai didi

database - 我应该在哪里分解我的用户记录以跟踪修订

转载 作者:搜寻专家 更新时间:2023-10-30 20:13:04 26 4
gpt4 key购买 nike

我正在建立一个员工数据库,我需要能够修改员工信息,同时还要跟踪所有修改。我应该如何构建数据库,以便我可以对同一用户数据进行多次修订,但又能够查询最新的修订版?我正在查看很少更改的信息,例如姓氏,但我需要能够查询过时的值。因此,如果 Jenny Smith 将她的名字更改为 Jenny James,我需要能够在搜索她的旧名字时找到用户的当前信息。

我假设我至少需要 2 个表,一个包含 uid,另一个包含修订。然后我会加入他们并查询最近的修订版。但是我是否应该根据数据更改的频率或数据类型进一步分割?我正在查看每条记录大约 40 个字段,每次更新可能只有一两个字段会更改。此外,我无法从数据库中删除任何数据,我需要能够回顾所有以前的记录。

最佳答案

执行此操作的一个简单方法是添加已删除标志,而不是更新记录,而是在现有记录上设置已删除标志并插入新记录。

如果愿意,您当然也可以将现有记录写入存档表。但如果更改不频繁且表不大,我就不会打扰。

要获取事件记录,使用'where deleted = 0'查询,当该字段有索引时,速度影响将最小。

通常,这会增加一些其他字段,例如修订号、上次更新记录的时间以及更新者。修订号对于获取以前的版本以及进行乐观锁定非常有用。 “谁最后更新以及何时更新”问题通常在系统运行时出现,而不是在需求收集期间出现,并且是放入包含“主”数据的任何表中的有用字段。

关于database - 我应该在哪里分解我的用户记录以跟踪修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3551473/

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