Задать вопрос
Ответы пользователя по тегу PostgreSQL
  • Как сделать нумерацию начинающуюся с нуля каждый год?

    @Shavadrius
    Знакомая проблема: пользователи хотят видеть красиво пронумерованные документы.
    За годы работы так и не сформировал единого подхода к преобразованию "непонятного" ID в "красивые циферки".
    Есть такие реализации, может что подойдет:
    1. Считаем порядок по счетчику, который сбрасываем в начале года. Легко реализуется. Минусы: при удалении элементов будут "дыры" в последовательности, что не нравится пользователям.
    2. Считаем порядок динамически по дате добавления/утверждения записи. Легко реализуется. Минусы: при редактировании даты, добавлении документов "задним числом" нумерация поедет, что тоже не нравится пользователям.
    3. Рассчитывать следующий номер документа исходя из номера последнего сохраненного (N+1). Обычно работает в паре с возможностью изменения номера руками (администратором ИС, например) - сбрасываем ответственность за нумерацию на пользователей. Полно подводных камней: от необходимости реализовать "сместить все на единичку с такого-то документа" до "нумерация поехала, исправьте".

    Если запретить манипуляции с датами и удалением документов, то сбрасываемый счетчик очень хорошо себя показывает. Но это практически нереально - без манипуляций обойтись...
    Ответ написан
    1 комментарий