powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как организовать учет документов по дате
4 сообщений из 4, страница 1 из 1
Как организовать учет документов по дате
    #38570514
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте как организовать учет документов по дате, когда дата это не только время проведения документа, а поле которое определяет последовательность всех расчетов в программе.
Расчеты проводятся по последовательности этих дат и соответственно дата, или (дата + дополнительное поле) должны быть уникальны

проводки могут не приходить долго, но потом за одну секунду может прийти до 500 одновременною

Как все это организовать (не на практике, а теоретически),

А, именно, допустим в базе имеем уже существующие проводки:
....
1. 2014-02-24 14:01:01
2. 2014-02-24 14:01:02
3. 2014-02-24 14:01:03
4. 2014-02-24 14:05:01
....
х. 2014-02-24 15:10:21
х. 2014-02-24 15:10:22


1. Что делать если следующие 10 проводок пришли одновременно в 2014-02-24 14:10:22 (совпадает с последней записью)
2. Что делать если при редактировании даты (а, такая возможность у оператора имеется) выбрали дату 2014-02-24 14:01:02 (которая совпадает с записью №2, а перед и после дата занято.).

Дата обязательно должно сохранятся как календарная дата, плюс где-то нужно обязательно сохранить последовательность внутри совпадающих дат. Соответственно нужно дополнительное поле, которое определит иерархию в группе совпадающих дат, но как организовать это дополнительное поле?

Перенумерация этого поля, при каждой проводке, просто исключается, смысл постановки вопроса как раз исходит из этого условия.
...
Рейтинг: 0 / 0
Как организовать учет документов по дате
    #38570532
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AvtopicДата обязательно должно сохранятся как календарная дата, плюс где-то нужно обязательно сохранить последовательность внутри совпадающих дат. Соответственно нужно дополнительное поле, которое определит иерархию в группе совпадающих дат, но как организовать это дополнительное поле?Дополнительное поле - вполне себе нормальное решение.
Ну а как организовать - это уже Вы сами... это будет ручная эмуляция счётчика на уровне группы записей. Вероятно, придётся решать триггером... хотя для этой обработки (особенно при многопоточной записи) ради упрощения соблюдения уникальности и исключения накладок я бы вынес эту нумерацию в отдельную таблицу и при выполнении операций на ней блокировал бы её полностью.
...
Рейтинг: 0 / 0
Как организовать учет документов по дате
    #38570598
Avtopic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, за ответ!

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

может кто знает механизм (хеширование, рандом, заранее резервирование диапазона для предполагаемых вставок между записями, исходя из разумного возможного количества, и т.д.).
допустим, может кто знает как это организована в 1С, как я знаю там тоже для программы дата основное понятые в расчетах.
...
Рейтинг: 0 / 0
Как организовать учет документов по дате
    #38570684
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaAvtopicДата обязательно должно сохранятся как календарная дата, плюс где-то нужно обязательно сохранить последовательность внутри совпадающих дат. Соответственно нужно дополнительное поле, которое определит иерархию в группе совпадающих дат, но как организовать это дополнительное поле?Дополнительное поле - вполне себе нормальное решение.
Ну а как организовать - это уже Вы сами... это будет ручная эмуляция счётчика на уровне группы записей. Не надо ничего эмулировать - это явный оверинжиниринг.
Если в этом "дополнительном" поле (на самом деле, это м.б. "внутренним" уникальным идентификатором документа) значения нарастают монотонно, то сортировка будет одинаковой что при использовании "счетчика на уровне группы записей", что на уровне "глобального счетчика" по таблице. И задаемся вопросом: "если результат одинаков, зачем платить больше?!" (с) реклама
AkinaВероятно, придётся решать триггером... хотя для этой обработки (особенно при многопоточной записи) ради упрощения соблюдения уникальности и исключения накладок я бы вынес эту нумерацию в отдельную таблицу и при выполнении операций на ней блокировал бы её полностью.Вполне упрощает проектирование подход, когда сохранение документа, регистрация документа (в журнале) и проведение документа - разные процессы... Еще лучше, когда они разделены по времени...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как организовать учет документов по дате
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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