2014-02-21 1 views
0

Мой вопрос не формируется с точки зрения базы данных, но преимущества от бизнеса логическая точка зрения.С точки зрения бизнес-логики, правильно использовать уникальные индексы в бизнес-столбцах?

Использование в качестве примера таблицы CreditCard и столбца CreditCardNumber. Я могу присвоить уникальный индекс для CreditCardNumber, потому что невозможно иметь два идентичных номера CreditCardNumber. Но разве это не бизнес-правило? Должен ли я разрешать аналогичный CreditCardNumber в базе данных и проверять себя на уникальности на уровне бизнес-логики?

Правильно ли я? Или какие преимущества существуют в использовании уникальных индексов в этом случае? Или оба случая верны, и я могу выбрать кого-нибудь?

Спасибо.

ответ

0

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

Вы проверяете уникальность на уровне приложения, чтобы вы могли предоставить обратную связь пользователю. Например, клерк вводит новый номер кредитной карты. Вы хотите, чтобы ваше приложение проверяло, находится ли этот номер в базе данных, и если да, предупредите пользователя, чтобы он мог исправить ошибку.

Вы хотите обеспечить наличие уникального номера на уровне базы данных, чтобы абсолютно убедиться, что для столбца, который должен быть уникальным, не должно быть дубликатов записей.

Смежные вопросы