Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Программирование для начинающих - общие вопросы.
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5

ТЕМА:

Нумерация документов 12 года 3 мес. назад #3725

  • Zuma
  • Zuma аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Нужно нумерацию документов
номер док. открытый для юзера, хотя и read-only
будет еще скрытый ID документа в качестве PK
нумерация док. должна быть своя в каждом подразделении
вот в этом-то и проблема

select max(...) не внушает доверия
а создавать свой сиквенс для каждого подразделения это как-то не хочется

Как лучше сделать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Нумерация документов 12 года 3 мес. назад #3726

Почему бы не сделать один сиквенс для всех подразделений?
Сиквенс не гарантирует отсутствие пропусков в номерах.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Нумерация документов 12 года 3 мес. назад #3727

Что мешает формировать по принципу "номер документа||lpad(номер подразделения)" или "номер подразделения||rpad(номер документа)" и вычислять так же через max?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Нумерация документов 12 года 3 мес. назад #3728

Таблица со счётчиками для каждого подразделения.

DOC_NUMS
DEPT_ID SEQNO
1 0
2 0
3 54
4 433


Если дырки в нумерации не бодают, бери номера в автономной транзакции

UPDATE DOC_NUMS SET SEQNO=SEQNO+1 WHERE DEPT_ID=:DEPT_ID RETURNING SEQNO INTO :SEQNO;
COMMIT;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Piston.

Re: Нумерация документов 12 года 3 мес. назад #3729

Если дыр быть не должно, тогда все сложнее. Придётся ичитывать выданные номера: когда выдан номер, кому, зачем, использован он или нет.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Нумерация документов 12 года 3 мес. назад #3730

Вообще чтобы не было дырок в нумерации?) очередной бред.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
Время создания страницы: 0.216 секунд