在註冊過程中有一個檢查過程,以便現有用戶名和電子郵件不能用於新註冊。驗證之後,數據會立即存儲,並且我們無法查看導致問題的原因。也許我們應該使用某種類型的鎖定?註冊期間防止重複輸入
我們在表單中使用了一個獨特的哈希,我們在每個進程之後交換,但不知何故,由於雙擊或其他事件,用戶註冊仍然存在兩次。
你有什麼想法我們可以如何防止重複輸入?
謝謝。
在註冊過程中有一個檢查過程,以便現有用戶名和電子郵件不能用於新註冊。驗證之後,數據會立即存儲,並且我們無法查看導致問題的原因。也許我們應該使用某種類型的鎖定?註冊期間防止重複輸入
我們在表單中使用了一個獨特的哈希,我們在每個進程之後交換,但不知何故,由於雙擊或其他事件,用戶註冊仍然存在兩次。
你有什麼想法我們可以如何防止重複輸入?
謝謝。
如果你希望值是唯一的一個表中,然後用unique
約束在表:
alter table t
add constraint unq_username_email unique (username, email);
讓數據庫做的工作,所以它保證了數據的完整性。那麼你不必擔心競賽狀況。
我應該注意:你可能想要兩個的獨特約束。目前還不清楚你想要什麼是唯一的:
alter table t add constraint unq_username unique (username);
alter table t add constraint unq_email unique (email);
謝謝,我們已經考慮過了,但如果這是解決問題的唯一方法,我們還不確定。 – kz88
@ kz88。 。 。我不知道你在想什麼,但是獨特的約束/索引是實現這個功能的正確方法。 –
對你的非複製字段有唯一約束? – Kritner
謝謝,我們已經考慮過了,但如果這是解決問題的唯一方法,我們還不確定。 – kz88