保存数据的变化是否有一种设计模式,构建数据模型的银行应用程序需要的数据变化要经过权限等级时,需要考虑数据模型的设计模式?授权之前由其他用户
例如,如果ADMIN1更改为customer1表中的电话号码,变化不应该直到Admin2的授予它是有效的。
我们计划要实现的解决方案是一个临时表来保存更改的记录与改变的值,一旦授权批准的变化,那么我们更新了主表。当你有很少的表时,这可以很好地工作,但是随着表的增加,这会很麻烦。
保存数据的变化是否有一种设计模式,构建数据模型的银行应用程序需要的数据变化要经过权限等级时,需要考虑数据模型的设计模式?授权之前由其他用户
例如,如果ADMIN1更改为customer1表中的电话号码,变化不应该直到Admin2的授予它是有效的。
我们计划要实现的解决方案是一个临时表来保存更改的记录与改变的值,一旦授权批准的变化,那么我们更新了主表。当你有很少的表时,这可以很好地工作,但是随着表的增加,这会很麻烦。
我不知道任何的设计模式,但我想我可能有另一个想法为你 -
只有一个其他的表,称为'Pending_Changes'
与列'Table_Identifier'
,'Column_Identifier'
'Record_Identifier'
和'New_Value'
。
每一行代表某个表的某个记录的单列更改。
对于例 - 一排的('Customers', 'Phone_Number', '12345', '077-4453432')
值将被用来代表客户的电话号码变更12345
这对夫妇这种方法的缺点是觉得─
1.所有的表必须有一个ID现场
2.更改单个记录可以跨越在PendingChanges表多行,因为它使一排每列改变值。
在都会颠倒这是很容易扩展的,很容易维护。
,当你有几桌,但会很麻烦的表格增加
不一定能正常工作。如果你设计得当,它可以很好地处理大量的表格。您可以构建一个漂亮而小巧的数据模型来保存更改。它不要求您创建每个表的副本。
例如您可以拥有一个表,如:AuditTables,AuditColumns,AuditChanges,AuditChangesDetails等,您可以在该模型中存储所需的所有更改,而不是创建与“实时”表对应的临时表。
我设计了这样的事情,这里是它的主要内容;
希望这有助于...
有趣的设计,但更多的ver_tables行更新的版本控制模型;我想这是一个简单的两步制造商,检查工作流程的延伸。你怎么看? – BuZain 2011-05-09 15:39:06
我喜欢这样一个事实,即您的设计基于单个表来跟踪更改,并且缺点对于我的应用程序来说是可承受的。 – BuZain 2011-05-09 15:42:54