繁体   English   中英

唯一的用户标识约束

[英]Unique User Identification Constraints

我正在构建一个需要我唯一标识每个用户的应用程序,以使他们可能不会在同一服务上多次注册。 为此,我需要根据数据库中现有的个人信息搜索用户的个人详细信息,以查看是否存在重复项。

我已经在用户名和电子邮件地址上设置了唯一的约束,但是,此过程要求我检查以下9个字段,因为它们是在KYC(了解您的客户)过程中经过审核的,因此我具有“确定性”,它们是准确的。

  1. 名字
  2. 中间名字
  3. 出生日期
  4. 性别
  5. 国家
  6. 地址1
  7. 地址2
  8. 地址3

但是,我为该过程构建了一个唯一索引约束(MySQL),鉴于大量字段,我在考虑仅从服务器端进行检查是否明智,并完全放弃了唯一索引。

请记住,只有在注册,KYC和金融交易期间才会查询这些字段。 在大量字段上进行唯一索引时的最佳实践是什么,它可能对系统产生什么性能影响?

在InnoDB中,每个辅助键都将主键隐式添加到末尾。 因此,拥有一个“小”主键是明智的。

因此,最好是将PRIMARY KEY设置为AUTO_INCREMENT并使用9列UNIQUE (第二个)键。 (这与具有9列的PRIMARY KEY 。)仅当存在其他“ secondary keys”时,差异才起作用。

或者,您可以在其中一些列上使用非UNIQUE组合键,并使用代码来完成唯一性约束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM