我有一张桌子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列。那我应该如何重新设计我的桌子呢?欢迎提出建议。
一种方法是让一个名为(table)_xx的影子表具有相同的列,时间,日期,更新/插入/删除标志,用户或其他内容,并且没有参照完整性。设置触发器以在任何事情发生时从源头更新该表。
如果您有需要历史的真实业务需求,则可以正确地执行这些需求,但是这种模式非常适合作为常规审核,调试和取证工具。
从数据库元数据中生成脚本/脚本也很容易实现自动化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句