4 февраля 2011 г.

Разница между int и uniqueidentifier в sql server

Эти два типа рекомендуется использовать в качестве первичных ключей в БД. Чем же они отличаются?

Тип int в sql server соответствует типу Int32 в платформе .NEТ. id новой записи генерируется автоматически путём увеличения на 1 id предыдущей записи, если для этого поля указано IDENTITY(1,1). Следовательно, id новой записи становится известно только после добавления её в таблицу.

Тип uniqueidentifier соответствует типу Guid в платформе .NET (пример: "C59498EC-5E38-41BF-9160-1B86449E02CA"). Особенностью этого типа данных является то, что статистически невозможно существование двух одинаковых id в любой информационной системе. В .NET генерируется методом Guid.NewGuid(). Отсюда следует, что id новой записи становится известным ещё перед сохранением в БД.

Выводы. Используйте uniqueidentifier, если не предполагается показывать id пользователю, т.к. он сложнее для восприятия, но удобнее при разработке. Если же нужно показывать пользователю id, например, в адресной строке браузера, то используйте целочисленный тип, но для того, чтобы узнать id новой записи, придётся выполнить запрос в БД.

Комментариев нет:

Отправить комментарий