使用 ASP.NET 默认配置文件提供程序

发布于 2024-12-28 10:25:39 字数 188 浏览 0 评论 0原文

我到处寻找这个问题,似乎没有任何明显的解决方案。 我有一个拥有很多用户的网站,但我需要存储一个全球唯一的个人资料值(电话),没有人可以两次使用相同的电话号码。

循环遍历所有用户获取他们的电话值并将其与用户提供的电话值进行匹配以拒绝它会非常慢。

有没有办法使配置文件值对所有用户都是唯一的?就像用户名是唯一的还是电子邮件一样?谢谢。

I have searched everywhere for this and it seems like there isn't any obvious solution.
I have a website with a lot of users but I need to store a globally unique profile value (phone) nobody can use the same phone number twice.

It would be very slow to loop through all my users get their phone values and match them against the user provided one to reject it.

Is there a way to make a profile value unique to all users? Just like a username is unique or a email? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

芯好空 2025-01-04 10:25:39

以下是如何在 SQL 中的表中创建索引:

CREATE INDEX IDX_CUSTOMER_PHONE on user (phone) 

当您查询数据库时,它将通过快速搜索表中的电话号码来查找您的值,而不是循环遍历所有值:

SELECT phone FROM user WHERE phone = '555-555-5555'

如果您需要以下实施方面的帮助您的 C# 代码,它将要求您查询数据库。我的建议是编写存储过程,使其返回 2 个结果集。第一个结果集将是记录本身,第二个结果集将返回 true 或 false,无论它在保存期间(创建或更新时)出错。在 C# 代码中,首先检查错误结果集,如果返回结果集,则显示重复项。

Here's how you create an index in a table in SQL:

CREATE INDEX IDX_CUSTOMER_PHONE on user (phone) 

When you query the database, it'll look up your value by quickly searching the table for the phone number, rather than looping through all values:

SELECT phone FROM user WHERE phone = '555-555-5555'

If you need help with the implementation in your C# code, it will require you to query the database. My suggestion would be to write your stored procedure such that it returns 2 result sets. The first result set would be the record itself and the second result set would return true or false whether it errored out during the save (on create or update). In your C# code, check the errors result set first, and display duplicate if it returned a result set.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文