【发布时间】:2010-11-20 03:59:08
【问题描述】:
我在这里的第一个问题,请客气!
我是一名经验不足的初级开发人员,遇到了这个问题。
我有一张需要审核的表。假设此表记录呼叫中心拨打的电话(不是,但这只是一个示例)。我称之为“CallHistory”。
我最初计划保留一个名为“Callees”的单独表,其中包含被调用者的姓名、电话号码等。该表将使用代理主键。
CallHistory 表将具有 Callee 表的外键。
我最初这样做是为了如果我更改了被叫方的电话号码,它将在整个系统中传播,而我不必在多个表中更改电话号码。
问题是,CallHistory 表的全部意义在于记录呼叫的历史记录,包括误拨呼叫(例如呼叫者拨错号码)。使用这种代理键方法会丢失历史记录。
工作中的一位高级开发人员建议在 CallHistory 表中保留呼叫者在该特定时间每次拨打电话的电话号码副本,以保存历史记录。
我正在考虑为同一目的保留一个审核/更改日志表。
我的方法是否足以满足这个目的,还是我完全偏离了轨道?您更喜欢哪种方法?
干杯, 安德鲁
【问题讨论】:
标签: database-design denormalization audit-trail