我到处寻找这个,似乎没有任何明显的解决方案。 我有一个拥有大量用户的网站,但我需要存储全球唯一的个人资料值(手机),没有人可以使用同一个电话号码两次。
在我的所有用户中获取他们的电话值并将其与提供的用户匹配以拒绝它时,这将非常缓慢。
有没有办法让个人资料值对所有用户都是唯一的?就像用户名是唯一的还是电子邮件一样?感谢。
答案 0 :(得分:1)
以下是在SQL中的表中创建索引的方法:
CREATE INDEX IDX_CUSTOMER_PHONE on user (phone)
当您查询数据库时,它会通过快速搜索表格中的电话号码来查找您的值,而不是循环遍历所有值:
SELECT phone FROM user WHERE phone = '555-555-5555'
如果您需要有关C#代码实现的帮助,则需要您查询数据库。我的建议是编写存储过程,使其返回2个结果集。第一个结果集将是记录本身,第二个结果集将返回true或false,无论它是在保存期间(创建还是更新时)出错。在C#代码中,首先检查错误结果集,如果返回结果集,则显示重复。