这可能是 DBA 的常识,但在我的数据库中,我正在努力进行简单的客户注册。
客户可以使用表格进行注册(我们使用typeform),这意味着我们无需实际的注册表单即可创建客户记录。
如果客户注册两次怎么办?或者当不同的客户(可能是合作伙伴)在同一个电子邮件地址下注册时?
UNIQUE
对例如电子邮件地址实施限制以防止重复记录是否明智?这似乎是最好的做法,但我可以想象它会在未来引起问题。
主要原因是提交表单时已在数据库中使用电子邮件地址。如果我得到一个副本,我可能想用最新的响应覆盖旧的表单数据。但是,在这里我冒着“虚假”提交的风险,这些提交会用虚假数据覆盖旧数据。如果我不覆盖旧记录,我可能会丢失最新信息。
也许是我想太多了,但我很难做出果断的选择。
如果我不强制执行电子邮件约束,那么当同一个客户填写表单两次时,就有可能出现重复记录(这种情况偶尔会发生)。这非常烦人,因为现在团队必须处理两条记录并且不知道哪个是正确的。
有没有好办法来处理这个问题?还是最好简单地选择一个并处理后果?
通过电子邮件地址进行的识别通常还涉及通过电子邮件地址的身份验证(例如,向声明的地址发送邮件并仅在回复该邮件时进行注册)。在那之后(当注册完成时),“谨慎设计”将要求您不允许太容易或太轻率地覆盖现有注册,这基本上意味着:只允许再次正确验证自己的同一用户. 或者通过使用确认邮件,其中任何更改只有在收到确认后才能有效完成。