【发布时间】:2011-11-01 00:16:54
【问题描述】:
我正忙于创建一个系统,我需要跟踪系统中的每一个变化。换句话说,当数据库中的一列发生变化时,我需要知道是什么表,哪一列,什么时候发生的,由哪个用户,从什么值,到什么值。
我的第一个想法是为每个表创建第二个表以用于记录目的,其中包含 column_name、updated_by、updated_on、from_value、to_value 等字段(为简单起见,将 from_value 和 to_value 字段保留为字符串)。但是,这实际上会创建数据库的副本。
我的第二个选择是为所有表创建一个类似类型(table_name、column_name、updated_by、updated_on、from_value、to_value)的大型表,但这会导致表无法管理,因为更改会经常发生.
这两个选项都有相同的问题,我不确定如何引用表的列,最糟糕的是,我如何在应用程序生命周期的后期处理列名的更改。
任何想法和建议将不胜感激。
【问题讨论】:
-
好吧,我可能会存储数据库对象 ID 而不是带有列/表/等名称的字符串,这可能会解决重命名列问题(如果 ID 保持不变,不确定如果是的话)。否则,很好的问题,我总是害怕自己做这样的事情......
标签: database-design