数据库设计:管理数据库表中的旧数据和新数据

戈文达·萨哈雷(Govinda Sakhare)

我有一张桌子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并且new为相应的列添加列并不优雅也不可取(我猜),最后将创建40列,以跟踪20列。那我应该如何重新设计我的桌子呢?欢迎提出建议。

LoztInSpace

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

如果您有需要历史的真实业务需求,则可以正确地执行这些需求,但是这种模式非常适合作为常规审核,调试和取证工具。

从数据库元数据中生成脚本/脚本也很容易实现自动化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章