我希望你能幫助我。 :)防止多人編輯相同的表格
我有一個一次被多個用戶使用的laravel應用程序,他們都有可能在我們的系統中編輯一些項目。
我不想要的是有2人在同一時間編輯相同的形式。
如果發生這種情況,我想告訴其他用戶當前窗體已被鎖定並正在被用戶名編輯。
如果用戶然後離開或提交表單,然後表單打開供其他用戶使用。
我已簽出樂觀和悲觀鎖定,我不認爲這對我來說是正確的
我在想什麼做的,當時,正在編輯以創建表的唯一標識符,如果頁面上的用戶有標識符,我會鎖定所有其他的,但是如何知道用戶是否關閉了瀏覽器窗口?那麼所有其他用戶仍然無法訪問該頁面/表單?
你們會怎麼建議我去做這件事?
親切的問候 丹妮
我會創建一個表來保存與表格有關的臨時數據。當用戶輸入表單ID 1時,我會將用戶ID,表單ID,輸入日期和最後修改日期添加到新表中。我會每2分鐘做一次ajax請求,只是爲了告訴服務器我仍然在工作,並更新表格。如果用戶在5分鐘內沒有發送任何內容,或者在這段時間內提交表單,我會從數據庫中刪除條目。通過這種方式,您可以驗證是否有人在嘗試訪問該表單時正在處理該表單。 – Phiter
嗨@PhiterFernandes你爲什麼要創建一個臨時數據表?我不希望任何人在一次編輯時只有一個人,所以我正在考慮爲第一個用戶訪問頁面時創建一個視覺編號,如果用戶完成編輯或關閉瀏覽器窗口,我應該刪除視覺編號。但是我怎麼知道用戶是否關閉了瀏覽器窗口?親切的問候/ Dannie – user3502250
CodeIgniter使用ci_sessions表,臨時用於存儲會話數據。如果它符合你的目的,這樣做完全可以。有了這個額外的表格,你可以控制多種形式。 – Phiter