在注册过程中有一个检查过程,以便现有用户名和电子邮件不能用于新注册。验证之后,数据会立即存储,并且我们无法查看导致问题的原因。也许我们应该使用某种类型的锁定?注册期间防止重复输入
我们在表单中使用了一个独特的哈希,我们在每个进程之后交换,但不知何故,由于双击或其他事件,用户注册仍然存在两次。
你有什么想法我们可以如何防止重复输入?
谢谢。
在注册过程中有一个检查过程,以便现有用户名和电子邮件不能用于新注册。验证之后,数据会立即存储,并且我们无法查看导致问题的原因。也许我们应该使用某种类型的锁定?注册期间防止重复输入
我们在表单中使用了一个独特的哈希,我们在每个进程之后交换,但不知何故,由于双击或其他事件,用户注册仍然存在两次。
你有什么想法我们可以如何防止重复输入?
谢谢。
如果你希望值是唯一的一个表中,然后用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