Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как организовать учет документов по дате / 4 сообщений из 4, страница 1 из 1
24.02.2014, 14:57
    #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
24.02.2014, 15:07
    #38570532
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать учет документов по дате
AvtopicДата обязательно должно сохранятся как календарная дата, плюс где-то нужно обязательно сохранить последовательность внутри совпадающих дат. Соответственно нужно дополнительное поле, которое определит иерархию в группе совпадающих дат, но как организовать это дополнительное поле?Дополнительное поле - вполне себе нормальное решение.
Ну а как организовать - это уже Вы сами... это будет ручная эмуляция счётчика на уровне группы записей. Вероятно, придётся решать триггером... хотя для этой обработки (особенно при многопоточной записи) ради упрощения соблюдения уникальности и исключения накладок я бы вынес эту нумерацию в отдельную таблицу и при выполнении операций на ней блокировал бы её полностью.
...
Рейтинг: 0 / 0
24.02.2014, 15:42
    #38570598
Avtopic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как организовать учет документов по дате
Спасибо, за ответ!

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

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


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