我在c#中创建了一个应用程序。我的问题是当用户尝试通过此应用程序编辑新数据库时,它不会直接保存到数据库中的主表,而是存储在另一个表上,并等待另一个用户批准它。
在这种情况下,如果用户尝试编辑,我希望保存应用程序图像并存储到表中,当另一个用户来批准它时,它可以在编辑之前和编辑后显示不同,这对于用户查看和决策。
我在互联网上搜索,但我找不到解决这个问题的好方法,任何人都可以帮忙。
答案 0 :(得分:0)
你的问题有不同的方法。
例如,您可以模仿许多会计和/或销售点系统中使用的“发布”和“签名”技术(例如AccPac,PsManager,QuickBooks,Rx-Solution,Pastel,UniSove等)。
通常,该方法不涉及在数据库或系统注册表中存储数据的临时存储/缓存 - 否!
实际上,在主管/管理员签名/发布之前,实际上存储了user1数据。您所要做的就是:
介绍/添加一些列(充当标志),例如“lastUpdatedBy_,latsUpdateDate_,createdBy_,createdDate_,posted_boolean,postedDate,postedByStr等”
在应用程序中,有控件(按钮等)允许“发布”功能(func更新表中的这些列)
2.1您的普通Save()功能不应包括更新这些列
2.1.1有另一个明确更新这些列的PostRecord()函数。
2.1.2只有主管/管理员(通过登录凭证和访问权限)可以触发此PostRecord)() - 通过控件
2.2仅当主管/管理员登录时,控件才可见/启用 2.2.1控件如果该记录集(绑定中的当前位置)已经具有列“published_boolean”= true,则不可见/启用。
一般都是这样的。
至于记录的BEFORE Vs AFTER状态,您需要为每个表创建一个日志表,例如“订单”表的“OrdersEditHistory”表。 从这里你可以记录两个实例:
我希望这会有所帮助。 Chagbert。