gpt4 book ai didi

mysql - 数据库设计 : Managing old and new data in database table

转载 作者:行者123 更新时间:2023-11-29 14:18:21 25 4
gpt4 key购买 nike

我有一个表 Student,其字段如下,

学生表(每个学生一条记录)

student_id
Name
Parent_Name
Address_line1, Address_line2, Addess_line
Photo_path
Signature_file_path
Preferred_examcity_choice1,Preferred_examcity_choice1, Preferred_examcity_choice3
Gender
Nationality
.
.
.

我正在通过 Web 界面将注册表单填写插入到此表中。

现在 Web 界面中有一个用于更新学生数据的模块,在每次更新请求时,我都会更新 student 表记录并在 student_data_change_request 中插入新条目>。学生可以多次更改记录。

student_data_change_request

request_id(auto_incr PK)
old_name
new_name
old_photo_path
new_photo_path
old_signature_file_path
new_signature_file_path

现在问题来了,早期的学生被允许更改很少的字段,现在客户希望允许候选人更新更多的字段(大约 20 个字段)并添加 old相应列的新 列不是优雅和首选(我猜),我最终将创建 40 列来跟踪 20 列。那么我应该如何重新设计我的 table 呢?欢迎提出建议。

最佳答案

一种方法是创建一个名为 (table)_xx 的影子表,它具有相同的列、时间、日期、更新/插入/删除标志、用户或其他任何内容,并且没有引用完整性。设置触发器以在发生任何事情时从源更新该表。

如果您有需要历史记录的真正业务需求,那么请正确执行这些操作,但此模式非常适合用作一般审计、调试和取证工具。

自动化/脚本化也非常容易,因为您只需从数据库元数据生成它。

关于mysql - 数据库设计 : Managing old and new data in database table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39894387/

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