Код структуры сущности первый пользовательский идентификатор - PullRequest
0 голосов
/ 02 августа 2011

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

Это мои ограничения:

  1. 8 цифр.
  2. на основе ограничений, Id должен начинаться с определенных чисел.

Как мне убедиться, что я не генерирую дубликаты?Я использую шаблон репозитория, поэтому мой метод сохранения выглядит так:

public User SaveUser(User user);

1 Ответ

0 голосов
/ 02 августа 2011

Вы можете быть уверены, что не будете создавать дубликаты, потому что это Id = Первичный ключ, который должен быть уникальным. Как только вы попытаетесь сохранить дубликат идентификатора сущности, вы получите исключение.

Алгоритм генерации зависит от многих других факторов, включая то, где вы хотите сгенерировать Id, как вы хотите отличить новый Id, насколько сложна логика для генерации и как меняется ограничение, и еще одна важная вещь - можете ли вы иметь пробелы в последовательности последующих идентификаторов (например, если вы выполняете откат транзакции с уже созданным идентификатором)? Вам нужно будет найти собственный механизм, основанный на этих требованиях.

Я делал это несколько раз, и я использовал отдельную таблицу для последовательностей, в которой хранится последнее использованное число для каждого типа последовательности (ограничение) + хранимая процедура для генерации следующего, сохранения и возврата его обратно в приложение + уровни интенсивной блокировки / изоляции транзакций.

...