Уникальный идентификатор для таблиц базы данных в .NET - PullRequest
0 голосов
/ 07 января 2011

Может ли кто-нибудь перечислить широко используемые методы для генерации уникальных идентификаторов, которые будут использоваться в таблицах БД (PK или иным образом)

Должно ли поле таблицы всегда быть строковым (для гибкости) или GUID (жесткая связь) или просто всегда использовать IDENTITY?

Если это строка, то, конечно, у меня есть возможность изменить логику генератора в любое время.

С ИДЕНТИЧНОСТЬЮ я чувствую себя ограниченным, потому что я должен зависеть от базы данных. Но хорошо ли это, чтобы поля публиковались снаружи как Счет-фактура #.

Для небольшого размера данных, скажем, 10000 записей, какой вариант у меня есть, чтобы получить наименьшую длину уникального, но случайного буквенно-цифрового?

Я сталкиваюсь со многими ситуациями, когда мне нужен такой уникальный номер для различных целей. Если я не могу продумать хороший вариант, я вынужден вернуться к старому и быстрому .NET Guid.newGuid.ToString ().

Но мне нужно услышать от опытных людей: каковы общие рекомендации и на что следует обратить внимание?

Ответы [ 2 ]

1 голос
/ 07 января 2011

Всегда используйте наименьший возможный идентификатор.

Если вам не нужны идентификаторы, сгенерированные на бизнес-уровне (например, многие клиенты, сохраняющие данные в оба конца), используйте столбец IDENTITY в своей таблице, в противном случае используйте GUID, но не размещайте кластеризованный индекс в столбце GUID, если только также COMB GUID .

1 голос
/ 07 января 2011

Вы можете просто использовать ниже, чтобы создать уникальный идентификатор

Guid.NewGuid();

лично я предпочитаю устанавливать в поле таблицы уникальный идентификатор.

...