这是我第一次为PoS WPF应用程序创建审核日志,并且想知道我如何实现审核系统,因为似乎每个可用选项都有其起伏。到目前为止,我没有阅读大量文章/主题,而是缩小了审核日志的一些常见做法:
1。触发器-不幸的是,由于我的应用程序的性质,我无法使用触发器,因为它无法知道哪个用户执行了操作。因此,我要做的是创建一个存储过程,该过程将处理客户插入内容以及客户日志插入内容及其详细信息。使用存储过程时,应用程序将提供Customer_Id。
2。具有新旧价值-我的最初计划是仅包含后者,因为我可以将旧价值与之前行中的新价值进行引用,但是存储旧价值似乎更明智,更复杂-明智的。
3。为日志/ 4使用单独的数据库。4.外键-这可能是我主要关心的问题,如果我决定对审计表使用单独的数据库,则无法为客户和员工设置外键参与其中。
我创建了一个带有主从表结果的模型erd,该结果将显示在wpf应用上,以将日志显示给管理员,非常希望您对可能出现的问题进行思考(还有一个雇员表,但我忘了说):
以下一些信息可能会有所帮助:
该数据库将与wpf应用程序一起驻留,后者是一台计算机。
客户数量将少于1000。
正式雇员人数为3。
管理员数量将为2。
答案 0 :(得分:1)
您可以在SQL Server数据库上为特定表启用CDC Change Data Capture 这将使您能够收集记录在特殊表中的数据库表上的所有数据更改。 您也可以参考official documents
这是DML命令的列表,以及如何在为源数据库表创建的CDC表中记录数据更改
CDC的优点是SQL Server默认提供它,而您无需进行任何日志记录。唯一的要求是应运行SQL Server代理,以便更改可以反映在日志表上。