Когда бы вы установили значение приращения в поле идентификации базы данных? - PullRequest
2 голосов
/ 05 августа 2009

С учетом таблицы:

CREATE TABLE Table1
(
    UniqueID int IDENTITY(1,1)
    ...etc
)

Теперь, зачем вам устанавливать инкремент на значение, отличное от 1?

Я могу понять, как установить начальное начальное значение по-другому. Например, если, скажем, вы создаете одну таблицу базы данных в месяц данных (например, Table1_082009, Table1_092009) и хотите запустить UniqueID новой таблицы, где остановилась старая. (Вероятно, я бы сам не использовал эту стратегию, но эй, я вижу, как люди это делают).

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

  • после вставки исходных данных, может быть, позже кто-то захочет включить вставку идентификатора и вставить новые строки в пропуски, но для эффективного поиска по индексу строки будут близки друг к другу?
  • если вы просматриваете идентификаторы, основанные непосредственно на URL-адресе, и хотите, чтобы людям было сложнее произвольно получить доступ к другим элементам (например, вместо того, чтобы пользователь смог определить это изменение суффикса URL-адреса с * От 1019 * до /GetData?id=1001, вы установили приращение 437, чтобы следующий URL был на самом деле /GetData?id=1437)? Конечно, если это ваша «безопасность», то вы, вероятно, уже в беде ...

Я не могу думать ни о чем другом. Кто-нибудь использовал приращение, которое не было 1, и почему? Мне действительно просто любопытно.

Ответы [ 3 ]

4 голосов
/ 05 августа 2009

Одной из идей может быть использование этого для облегчения разделения данных (хотя для этого могут быть более «автоматизированные» способы) :

  • Учитывая, что у вас есть два сервера:
    • На одном сервере вы начинаете с 1 и увеличиваете на 2
    • На другом сервере вы начинаете с 2 и увеличиваете на 2.
  • Затем из вашего приложения вы отправляете половину вставок на один сервер, а другую половину - на второй сервер.
    • какая-то программная балансировка нагрузки

Таким образом, у вас все еще есть возможность идентифицировать ваши записи: уникальный идентификатор все еще уникален, даже если данные разделены на два сервера / таблицы.

Но это только дикая идея - возможно, есть и другие способы использования ...

2 голосов
/ 05 августа 2009

Однажды, ради чистого удовольствия, (о да, у нас есть дикая сторона), мы решили отрицательно увеличить. Странно было видеть, как числа увеличиваются в размерах и уменьшаются в стоимости одновременно.

Я с трудом мог сидеть на своем стуле.


изменить (запоздалая мысль):
Вы думаете, что создатель IDENTITY был влюблен в петли FOR? Вы знаете ..

for (i = 0; i<=99; i+=17)

или для тех, кто не является точкой с запятой там

For i = 0 to 100 step 17
0 голосов
/ 05 августа 2009

Только для развлечения. И тебе должно быть очень скучно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...