2014-04-07 70 views
0

我已經在c#中創建了一個應用程序。當用戶嘗試通過此應用程序編輯新的數據庫時,我的問題是什麼,它不會直接保存到數據庫中的主表,而是存儲在另一個表上,並等待另一個用戶批准它。創建應用程序和存儲到數據庫的圖像

在這種情況下,如果用戶嘗試編輯,我希望將應用程序映像保存到表中,並且當其他用戶批准它時,可以在編輯之前和編輯之後顯示不同的值,這非常方便供用戶查看和做出決定。

我有通過互聯網搜索,但我找不到一個很好的解決方案來解決這個問題,任何人都可以幫助請。

+0

這是否意味着您每次用戶進行編輯時都只需保存一份新副本?您可以創建一個字段來存儲每個副本的版本號,以便跟蹤哪個副本更新。 – failedprogramming

+0

@failedprogramming我創建了另一張表來存儲用戶在該表中批准之前完成的所有活動,而不僅僅是編輯。 exp(添加/編輯/刪除) – Nelson

回答

0

那麼你的問題有不同的方法。

例如,您可以模仿許多會計和/或銷售點系統(如AccPac,PsManager,QuickBooks,Rx-Solution,Pastel,UniSove等)中使用的「發佈」和「簽名」技術。

通常,這種方法不涉及在您的數據庫或系統註冊表中有臨時存儲/緩存數據 - 不!

在主管/管理員簽署/發佈之前,發生什麼實際上是存儲user1數據。所有你需要做的是:

  1. 介紹/添加一些列(作爲標誌),如「lastUpdatedBy_,latsUpdateDate_,createdBy_,createdDate_,posted_boolean,postedDate,postedByStr等)

  2. 在應用,有控件(按鈕等),以允許「投稿」功能(FUNC,在表更新這些列)

    2.1你的正常保存()溫控功能不應該包括更新這些列

    2.1.1有另一個PostRecord ()函數顯式更新這些列。

    2.1.2 ONLY監督員/管理員(通過登錄憑據和訪問權限)可以解僱這個PostRecord)() - 通過控制

    2.2控件是可見的,當主管/管理員在 登錄/只啓用2.2.1控件如果該記錄集(綁定中的當前位置)已經有列「posting_boolean」= true,則不可見/啓用。

通常類似的東西。

至於記錄的BEFORE Vs AFTER狀態,您需要爲每個表創建一個記錄表,例如, 「訂單」表的「OrdersEditHistory」表。 由此您可以記錄這兩個實例:

  • before:在實際的PostRecord()函數前觸發。它捕捉記錄的狀態。
  • 之後:發射後PostRecord()。這是可選的,因爲您仍然可以從實際主表中檢索詳細信息並進行比較。

我希望這有助於。 Chagbert。

相關問題