在为需要更改数据的银行应用程序构建数据模型时是否需要考虑设计模式?
例如,如果admin1更改了customer1的电话号码,则在admin2授权之前,更改不应生效。
我们计划实施的解决方案是使用临时表来保存已更改的记录和更改的值,一旦授权者批准更改,我们就会更新主表。当你有几张桌子时这很好用,但随着桌子的增加会很麻烦。
答案 0 :(得分:1)
当你有几张桌子时这很好用,但随着桌子的增加会很麻烦
不一定。如果你正确设计它,它将适用于大量的表。您可以构建一个漂亮的小数据模型来保存更改。它不需要您创建每个表的副本。
e.g。您可以拥有如下表:AuditTables,AuditColumns,AuditChanges,AuditChangesDetails等,您可以在该模型中存储所需的所有更改,而不是创建与“实时”表对应的临时表。
答案 1 :(得分:1)
我不知道任何设计模式,但我想我可能对你有另一个想法 -
只有一个名为'Pending_Changes'
的表,列'Table_Identifier'
,'Column_Identifier'
'Record_Identifier'
和'New_Value'
。
每一行都代表一些列的更改,某些记录显示在某些表格中
例如,值为('Customers', 'Phone_Number', '12345', '077-4453432')
的行将用于表示客户12345的电话号码的变化。
这种方法的缺点是 -
1.所有表格必须有一个ID字段
2.对单个记录的更改可以跨越PendingChanges表中的多个行,因为它为每个更改的列值保留一行。
在好的方面 - 它非常易于扩展且相当容易维护。
答案 2 :(得分:0)
我设计了类似这样的东西,这是它的要点;
希望这会有所帮助......