记录订单的修改历史,如何实际数据库表?
现在客户要求能够修改订单,并且把每次的修改历史都记录下来,如何设计数据库来满足此要求呢?
比如现在有两张表 PO_HEADER 和 PO_DETAIL
要求改一次单(包括改Header 和Detail),都能够可以跟踪到,改了哪些内容。
我知道有一些大系统,比如SAP之类的,可以做到这一点。
------解决方案--------------------加PO_HEADER_histroy 和 PO_DETAIL_history
结构相同,增加修改时间,修改人等字段
每改一次插入一条
------解决方案--------------------记录这些修改历史,用来作查询吧!
可以用触发器实现。
这样不论是通过程序,还是直接在表中修改,都能记录修改的历史信息。
------解决方案--------------------把每次的修改历史都记录下来,那肯定要建个历史档了,历史档用自增长的ID做主键,字段就看那些是必须保存的了,也不用什么都保存历史
在表的update触发器里往历史档写就好,当然是每个表对应一个历史档