работа с поставщиком профилей asp.net по умолчанию - PullRequest
1 голос
/ 22 января 2012

Я искал повсюду это, и кажется, что нет никакого очевидного решения. У меня есть веб-сайт с большим количеством пользователей, но мне нужно хранить глобально уникальное значение профиля (телефон), чтобы никто не мог использовать один и тот же номер телефона дважды.

Было бы очень медленно проходить через все мои пользователи, чтобы получить их телефонные значения и сопоставить их с предоставленным пользователем, чтобы отклонить его.

Есть ли способ сделать значение профиля уникальным для всех пользователей? Так же, как имя пользователя уникально или адрес электронной почты? Спасибо.

1 Ответ

1 голос
/ 22 января 2012

Вот как вы создаете индекс в таблице в SQL:

CREATE INDEX IDX_CUSTOMER_PHONE on user (phone) 

Когда вы запрашиваете базу данных, она будет искать ваше значение путем быстрого поиска в таблице номера телефона, а не зацикливаниячерез все значения:

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

Если вам нужна помощь с реализацией в вашем коде C #, вам потребуется запросить базу данных.Я бы предложил написать хранимую процедуру так, чтобы она возвращала 2 набора результатов.Первый набор результатов будет представлять собой саму запись, а второй набор результатов будет возвращать значение true или false независимо от того, было ли оно выполнено при сохранении (при создании или обновлении).В своем коде C # сначала проверьте набор результатов ошибок и отобразите дубликат, если он вернул набор результатов.

...