关于数据日志的设计方案

在项目中经常碰到需要对客户户的数据变更进行跟踪或监控的需求,如客户信息管理模块中:
客户信息:
姓名:张三
地址:北京海淀区中关村XXX
电话:66666666
1月2日 地址被修改为:北京朝阳区国贸大厦xxx
5月1日 电话变更为:88888888

客户希望能够提供对其系统数据的历史情况进行查询,应该如何进行设计?

如果你的客户的数据是一个独立的表,假如是user
那么你可以考虑多加一个历史记录表,分别记录变更前后的客户的数据,假如是history_user,
在history_user你可以记录变更的情况,以及变更的人,时间等等,方便以后查询

我觉得可以设计一个HISTORY表,用来记录所有操作历史,记录的地方在每个组件中的add(),update(),delete()等方法中。其实我觉得用Log记也很方便。

如果是单数据修改,记录日志的问题不大,如果进行批量操作时,如何设计实现,如:
update Custom set custom_status=3 where (select custom_id from
custom_buy where sum(buy_money)>=1000)
需要对所有被更新的客户进行日志记录。

类似这样的应用,如何进行通用数据日志设计?

这个跟单数据没有关系吧
既然你你能修改到,同样也可以把抓出来再塞到历史表中

条件和你update的一样的
比如是:
insert into history(custom_id,custom_status,phone,previous_phone)
select custom_id,custom_status,(新的电话),phone(旧的电话) from
custom_buy
where custom_id in(select custom_id from
custom_buy where sum(buy_money)>=1000)