Я начинаю новый проект с SqlServer и Linq to Sql.
Какой тип данных будет лучше для суррогатных ключей в таблицах: identity
или uniqueidentifier
?
Как я понял, identity
автоматически создается при вставке, а uniqueidentifier
должен быть сгенерирован в коде (GUID).
Существуют ли существенные различия в производительности?
например identity
значение должно быть прочитано после вставки, поэтому после вставки происходит дополнительная загрузка базы данных.
Edit:
Я нашел очень подробный ответ в другом вопросе: Таблицы без первичных ключей. Прочтите выбранный ответ.
Изменить 2:
Что касается ответов о суррогатных ключах: мне нравятся суррогатные ключи больше, чем естественные ключи. Это решение сделано, поэтому, пожалуйста, не предлагайте пересмотреть дизайн базы данных. Также, пожалуйста, не обсуждайте плюсы и минусы натуральных и суррогатных ключей.