Могу ли я использовать для этого тип данных SERIAL? - PullRequest
1 голос
/ 05 ноября 2010

Я создаю базу данных, в которой одно поле должно быть автоматически увеличено с 1. Поле будет для серийных номеров.Должен ли я использовать тип данных "Serial", т.е. я использую bigint (20) без знака?

1 Ответ

1 голос
/ 17 февраля 2011

Ну, это зависит, но, вероятно, нет. Большинству предприятий нужен учет серийных номеров, которые они использовали. Обычно это означает, что они хотят проверяемую последовательность, в которой нет пробелов. Автоматические последовательности, сгенерированные системами управления базами данных, не гарантируют отсутствие пробелов.

Канонический способ справиться с этим - создать таблицу серийных номеров (или, в зависимости от приложения, таблицу только из последовательной части более сложного серийного номера). Приложение «берет» следующий доступный серийный номер из этой таблицы и обновляет эту таблицу некоторыми соответствующими проверяемыми данными. Нечто вроде имени пользователя и метки времени встречаются часто, но это действительно зависит от приложения.

Вы должны быть осторожны с производственными линиями, которые потребляют тысячи серийных номеров в секунду. Такая большая активность может привести к проблеме конкуренции за таблицу серийных номеров.

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