powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правиЛъно присваивать порядковые номера ?
25 сообщений из 107, страница 1 из 5
Как правиЛъно присваивать порядковые номера ?
    #35230449
Фотография student-uni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача выдавать сохраняемым документам порядковые номера.

Ну просше всего через Идентити старт 1 с шагом 1.
Но вот проблема, если запись удалена - ее номер уже нельзя повторно использовать.

А надо. Пробелов в нумерации документов быть не должно.

Документы могут заполнятся несколькими пользователями одновременно.

В момент сохранения мне надо получить для документа первыи свободныи порядковыи номер и сохранить его.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35230469
Фотография student-uni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я создал таблицу с номерами
ИД|Номер|ИД-Документа
где номера заложены от 0 до 10000
и присваиваю каждому номеру ИД документа
Но может есть другое решение ?
(ведь через год мне надо сбросить нумерацию в ноль)
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35230616
про герр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student-uniЯ создал таблицу с номерами
ИД|Номер|ИД-Документа
где номера заложены от 0 до 10000
и присваиваю каждому номеру ИД документа
Но может есть другое решение ?
(ведь через год мне надо сбросить нумерацию в ноль)

сделать триггер на AFTER INSERT и в нем описать что душе угодно, в том числе и по сравнению дат и пр.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35230689
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student-uniПробелов в нумерации документов быть не должно. чтобы не было пробелов в нумерации необходимо запретить физическое удаление данных из таблицы, а пользоваться логическим
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231261
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych student-uniПробелов в нумерации документов быть не должно. чтобы не было пробелов в нумерации необходимо запретить физическое удаление данных из таблицы, а пользоваться логическим

Сам-то понял, что сказал?
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231270
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student-uniЯ создал таблицу с номерами
ИД|Номер|ИД-Документа
где номера заложены от 0 до 10000
и присваиваю каждому номеру ИД документа
Но может есть другое решение ?
(ведь через год мне надо сбросить нумерацию в ноль)

Ха, забавное решение.
Бывает, правда, еще расширяющее требование "номера документов следующего дня не должны быть меньше номеров документов предыдущего". То есть, если сегодня в номерах осталась "дырка", то завтра ее использовать уже нельзя. Так что добавь туда дату и будь счастлив!
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231338
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1Сам-то понял, что сказал?Я - да, а что не понятым осталось для вас?
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231376
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych Николай1Сам-то понял, что сказал?Я - да, а что не понятым осталось для вас?

Как логическое удаление поможет непрерывной нумерации?
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231468
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1Как логическое удаление поможет непрерывной нумерации? при логическом удалении записи не удаляются, нумерация не прерывается. + получаем историю введённых документов и более предсказуемый и расширяемый проект базы. + не паримся с вычислением правильного ИД. минусов (по крайней мере значительных) не наблюдаю. андерстенд ми? ;)
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231531
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student-uni
Но вот проблема, если запись удалена - ее номер уже нельзя повторно использовать.


Логично. Ведь документов с одинаковыми номерами быть не должно. Вчера я чек №1 выписал, сегодня удалил, завтра снова чек №1 выпишу. И что за каша получится?

student-uniА надо. Пробелов в нумерации документов быть не должно.

Одно не пойму, кому это надо. Представь, как это можно сделать на бумаге, не используя электронные средства? Трудно представить, не так ли? А вдруг к закрытию отчётного периода дырки в нумерации не будут заполнены, что тогда? Всех руководителей отправят в КПЗ? Отсюда вывод - нужно просто предусмотреть формальную процедуру списания неиспользованных номеров. Типа составить акт, Документы с №№ .... уничтожены. Члены комиссии: <глав бух.>, <начальник IT подразделения>, ....

student-uniДокументы могут заполнятся несколькими пользователями одновременно.

В момент сохранения мне надо получить для документа первыи свободныи порядковыи номер и сохранить его.

Это только осложняет задачу. В бумажной системе в таких случаях клеркам выдают на день или на неделю пачки пронумерованных документов, ну а дальше они их расходуют. Когда бланки заканчиваются, заказывают новые пачки, иногда портят бланки, иногда к закрытию периода остаются неиспользованные бланки, тем не менее всё исправно работает.
Электронная система может лишь оптимизировать процесс, но не может исключить перечисленные прецеденты. Так что думай.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231621
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab student-uni
Но вот проблема, если запись удалена - ее номер уже нельзя повторно использовать.


Логично. Ведь документов с одинаковыми номерами быть не должно. Вчера я чек №1 выписал, сегодня удалил, завтра снова чек №1 выпишу. И что за каша получится?

student-uniА надо. Пробелов в нумерации документов быть не должно.

Одно не пойму, кому это надо. Представь, как это можно сделать на бумаге, не используя электронные средства? Трудно представить, не так ли? А вдруг к закрытию отчётного периода дырки в нумерации не будут заполнены, что тогда? Всех руководителей отправят в КПЗ? Отсюда вывод - нужно просто предусмотреть формальную процедуру списания неиспользованных номеров. Типа составить акт, Документы с №№ .... уничтожены. Члены комиссии: <глав бух.>, <начальник IT подразделения>, ....

student-uniДокументы могут заполнятся несколькими пользователями одновременно.

В момент сохранения мне надо получить для документа первыи свободныи порядковыи номер и сохранить его.

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

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

На бумаге, кстати, это решается как раз, как нефиг делать. Какой надо номер напечатать, тот и печатаем.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231628
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych Николай1Как логическое удаление поможет непрерывной нумерации? при логическом удалении записи не удаляются, нумерация не прерывается. + получаем историю введённых документов и более предсказуемый и расширяемый проект базы. + не паримся с вычислением правильного ИД. минусов (по крайней мере значительных) не наблюдаю. андерстенд ми? ;)

И как же мы вычисляем правильный ID? Если, например, документ с одним и тем же номером удалили восемь раз?
Решение студента лучше.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35231915
MGR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1
И как же мы вычисляем правильный ID? Если, например, документ с одним и тем же номером удалили восемь раз?
Решение студента лучше.

Не вижу проблемы. Пометили документ номер 5 как удалённый. Потом - его можно отревьювить, восстановить... Зато следующий номер будет - 6. Потом 7.
В случае физического удаления, придётся после 7го номера (например) создавать документ с номером 5.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35232098
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MGR Николай1
И как же мы вычисляем правильный ID? Если, например, документ с одним и тем же номером удалили восемь раз?
Решение студента лучше.

Не вижу проблемы. Пометили документ номер 5 как удалённый. Потом - его можно отревьювить, восстановить... Зато следующий номер будет - 6. Потом 7.
В случае физического удаления, придётся после 7го номера (например) создавать документ с номером 5.

+1. Работать с тем чего нет (с удалёнными номерами), гораздо сложнее с тем что есть (документы помеченные как удалённые). Их действительно легко выбрать и использовать повторно. По крайней мере, если запись удаляется из таблицы, то её номер следует сохранить в таблице освободившихся номеров.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35232147
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1На бумаге, кстати, это решается как раз, как нефиг делать. Какой надо номер напечатать, тот и печатаем.

Тогда и в электронном виде тоже можно печатать номера какие надо. В добавок PK проверит уникальность введённого номера. Только вот без PK в многопользовательской среде бардак начнётся.

В общем это я всё к тому, что документооборот изначально строится так, чтобы он нормально работал без средств автоматизации, а уж автоматизировать формальные процедуры достаточно просто.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35232480
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student-uniПробелов в нумерации документов быть не должно
Просьба ответить по существу, откуда такое требование?
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35232582
222333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Васкецов student-uniПробелов в нумерации документов быть не должно
Просьба ответить по существу, откуда такое требование?
Ептель, архинаиважнейшее требование бухов и делопроизводителей. Идет от ручной работы - какой номер последний, значит стока в пачечке документов. Запаришься их от этого отучать
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35232613
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
222333 Сергей ВаскецовПросьба ответить по существу, откуда такое требование?Ептель, архинаиважнейшее требование бухов и делопроизводителей. Идет от ручной работы - какой номер последний, значит стока в пачечке документов. Запаришься их от этого отучать
Просьба ответить по существу.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35233152
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов 222333 Сергей ВаскецовПросьба ответить по существу, откуда такое требование?Ептель, архинаиважнейшее требование бухов и делопроизводителей. Идет от ручной работы - какой номер последний, значит стока в пачечке документов. Запаришься их от этого отучать
Просьба ответить по существу.

Это и был ответ "по существу".
Требование бухгалтерии.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35233378
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1Требование бухгалтерии.
У бухгалтерии не может быть никаких "требований", только пожелания. Требования могут буть у контролирующих органов, законодательства и т.п.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35233402
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1
Это и был ответ "по существу".
Требование бухгалтерии.

А как это требование согласуется с "Документы могут заполнятся несколькими пользователями одновременно."? Оно может и не в тему (тема вроде исчерпалась), однако.

Сидят три клерка: 1, 2, 3. Каждый оформляет документ с №№ 1, 2, 3 соответственно. Тут клерк 1 передумал, и удалил документ № 1. Собственно на этом и всё. В БД имеем документы 2 и 3. Номер 1 остался свободен. Что в этом случае будет делать бухгалтерия?
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35233440
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Васкецов Николай1Требование бухгалтерии.
У бухгалтерии не может быть никаких "требований", только пожелания. Требования могут буть у контролирующих органов, законодательства и т.п.

Систему будет принимать в эксплуатацию бухгалтерия или органы? Зачастую бухгалтерии или заказчику можно доказать, что её/его требования избыточны и только удоражают разработку системы. Но тут вопрос стоит достаточно общий и вполне возможно, что это действительно требование "органов".
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35233473
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabСистему будет принимать в эксплуатацию бухгалтерия или органы
Ни те и ни другие. В любом случае это не тема топика.

mcureenabи вполне возможно, что это действительно требование "органов".
Вот и хотелось бы подтверждение этого. Всякие "хотелки", непонятно откуда взявшиеся, волнуют мало.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35233973
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже много раз обсуждалось, что требования
student-uniПробелов в нумерации документов быть не должно.

Документы могут заполнятся несколькими пользователями одновременно.
противоречивы. Без пробелов - значит сериализация. Все желающие получить номерок или удалить документик выстраиваются в очередь.
Далее, она в общем случае не решается без перенумерации. Если сегодня удалили 1000 документов, а в день добавляется по 200 новых, то дыра будет жить легко посчитать сколько дней.

В условиях автоматизации легче завести всякие следилки и последующие проверялки - кто когда и почему - чем имитировать кассира 30х годов.
...
Рейтинг: 0 / 0
Как правиЛъно присваивать порядковые номера ?
    #35234244
222333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ModelRчем имитировать кассира 30х годов.
Осталось убедить теток, что если последний "№ докум 547", а select count(*) показывает 501, то значит документов 501, а не 547
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 1 из 5
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правиЛъно присваивать порядковые номера ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]