2017-04-25 56 views
0

我正在使用一個Django後端與postgresql如何爲多個用戶一次選擇多個記錄進行編輯?

假設我有一個名爲Employees的表的數據庫,其中有大約20,000條記錄。

我需要允許多個用戶編輯和驗證Area Code字段中的每個記錄Employees

我寧願讓用戶每次查看30個記錄(以減少倦怠)。

如何選擇30個記錄從Employees時間發送給前端用戶界面進行編輯,沒有讓多個用戶編輯相同的記錄,或重新選擇已經被驗證記錄?

我不需要評論數據庫的內容(這些是示例表和字段名稱)。

回答

0

要做到這一點的一種方法是將2個字段添加到您的表中,例如assigned_toverified。當允許用戶查看該員工時,您可以更新assigned_to,這可以是驗證用戶的外鍵。這將創建一條記錄,防止員工被選中兩次。 assigned_to也可以作爲驗證此員工的記錄以供將來參考。

verified可能是一個簡單的布爾字段,跟蹤,如果員工已經被驗證,當用戶確認的驗證

實際的選擇可以這樣做可以更新:

employees = Employee.objects.filter(assigned_to=None, verified=False)[:30] 

然後

for emp in employees: 
     emp.assigned_to = user 
     emp.save() 

注意:這仍然可能引起的競爭條件,如果2個用戶進行精確地在SAM這個請求時間。爲了避免這種情況發生,另一種可能性可能是將員工表分成不重疊的每個用戶的組。這將確保沒有用戶會永遠具有相同的員工

+0

這是否自動更新數據庫?如果是這樣,我認爲這將有很大的幫助 –

+0

你是什麼意思?當你在你的視圖中執行動作時數據庫會更新 – Written

+0

我已經閱讀過有關查詢數據庫的「快照」並根據該快照而不是當前版本進行查詢的查詢,但我很困惑。你說的很好,謝謝。 一旦我實現它,我會將其標記爲已解決。 –

相關問題