Что «лучше» генерировать первичные ключи в базе данных или генерировать их в коде приложения, особенно при использовании типа данных GUID / UniqueIdentifier для ключей.
Я прочитал о разнице между использованием типов данных Guid и int, и похоже, что Guids осуществимы для так называемой "генерации в автономном режиме".
* 1005 Е.Г. *
вместо NEWID()
contstraint в базе данных. В одном проекте (где мы используем Entity Framework) мы используем в коде приложения Guid.NewGuid()
для генерации PK при вставке данных.
Это плохой подход?
Мои опасения:
- Индексы базы данных: производительность базы данных, поскольку идентификаторы могут быть не последовательными
- Вероятность того, что ключ уже используется, составляет 64 миллиарда. (учитывая, что приложение не будет огромным, но может потребоваться пространство для роста)
- Возможно, есть и другие недостатки?