Лично я не мог бы жить без столбцов идентификаторов и использовать их повсеместно, однако есть некоторые причины думать о том, чтобы их не использовать.
Первоначально основная причина не использовать столбцы идентификаторов AFAIK была вызвана распределенными схемами из нескольких баз данных (отключенными) с использованием репликации и / или различных компонентов промежуточного программного обеспечения для перемещения данных. Просто не было распределенного механизма синхронизации и, следовательно, не было надежных средств предотвращения столкновений. Это значительно изменилось, так как SQL Server поддерживает распространение идентификаторов. Однако их использование может не соответствовать более сложным схемам репликации, управляемой приложением.
Они могут пропускать информацию. Идентификаторы учетной записи, номера счетов и т. Д. Если я получаю счет от вас каждый месяц, я могу приблизить количество отправленных вами счетов или ваших клиентов.
Я постоянно сталкиваюсь с проблемами, связанными с объединением клиентских баз, и все стороны все еще хотят сохранить свои старые номера счетов. Это иногда заставляет меня усомниться в моей зависимости от полей идентичности:)
Как и большинство вещей, окончательный ответ «это зависит», особенности конкретной ситуации должны обязательно иметь большое значение в вашем решении.