powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Значения полей в зависимости от даты.
13 сообщений из 13, страница 1 из 1
Значения полей в зависимости от даты.
    #33449140
dm82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть задача: построить достаточно сложную систему для учета документов, финансов и прочей лабуды, но так чтобы каждый объект (в смысле договор, контрагент, счет-фактура...) базы мог менять свои параметры в зависимости от даты.
Структура базы без учета даты построена и ясна.
Т.к. нужно менять параметры у всех возможных объектов (а их очень много), то была придумана следующая схема для работы со всеми типами объектов:
1. table OBJECTS - хранится ключ объекта. (один ключ на объект)
2. table OBJ_PERIODS + table с данными об объекте - хранятся информация о периоде действия + параметры объекта для конкретного ключа table OBJECTS.
(для одного объекта их может быть много)
При написании пробных рабочих мест оказалось все очень геморно, сложно и криво :(. Но работало :)
Очень не хочется изобретать велосипед, поэтому может быть кто сталкивался с похожими задачами и поделится вариантами решения.

Заранее благодарен, Дмитрий.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33449211
dm82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗЫ: MS SQL + Delphi
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33449306
Фотография babaEGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже хотелось бы услышать опыт ALLа в этом вопросе.

Учавствовала в разработке чего-то похожего. (MS sql + VB.Net) - т.е. требовалось сделать некую псевдо-историческую ось.
Например - ООО "Ромашка" в ноябре 2004 года переименовалась в ООО "Василек". Поэтому в документах (накладных и т.д.) до ноября 2004 года в качестве имени клиента выдавать "Ромашку", а потом "Василек".
Схема была похожа на вашу - Из таблицы OBJECTS никогда ничего не удаляем, а регулируется все за счет таблицы OBJ_PERIODS.

Осталась нерешенной проблема - что если мы заключаем длительный договор с "Ромашкой" (например что Ромашка будет поставлять нам в 2007 году компы). А Ромашка тем временем переименовывается в Василек... Получаются что объекты таким образом блокируются... К сожалению наш проект закрылся (по независящей от нас причине), поэтому вопрос мне до сих пор интересен %))

З.Ы. Пыталась узнать, как обстоят дела с этим вопросом в других системах - и практически везде мне отвечали, что такой "исторической оси" либо вообще нет (клиент просто переименуется и все). Либо задача упращена только классификаторами.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33449584
eav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eav
Гость
2 dm82
примерно то же самое
есть таблица ид объектов без даты
и таблица с полным состоянием объекта за период
из нее можно узнать состояние объекта на заданную дату
инфа дублируется но искать проще
одну из дат периода можно не хранить
ессно в отчетах выводится инфа на нужную дату
например на дату составление договора и т.п.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33449640
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> как обстоят дела с этим вопросом в других системах - и практически везде
> мне отвечали, что такой "исторической оси" либо вообще нет
> (клиент просто переименуется и все). Либо задача упращена только
> классификаторами.

Не там спрашивали, не то искали. Ключевые слова "хронологические базы данных". Все отлично работает.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33449835
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
/topic/102804

/topic/29368
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33449917
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все на самом деле архи-просто но только те слуiайте тех людей, которые
предлагают делать select min().max() where <период>.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33452736
dm82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за советы... попробую поискать по указанным ссылкам. И наверное буду как-то оптимизировать придуманную структуру, т.к. архивный вариант не подходит, а что-то другое думать... придумаю напишу.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33452923
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot babaEGA]Например - ООО "Ромашка" в ноябре 2004 года переименовалась в ООО "Василек". Поэтому в документах (накладных и т.д.) до ноября 2004 года в качестве имени клиента выдавать "Ромашку", а потом "Василек".
Схема была похожа на вашу - Из таблицы OBJECTS никогда ничего не удаляем, а регулируется все за счет таблицы OBJ_PERIODS.

Осталась нерешенной проблема - что если мы заключаем длительный договор с "Ромашкой" (например что Ромашка будет поставлять нам в 2007 году компы). А Ромашка тем временем переименовывается в Василек... Получаются что объекты таким образом блокируются... К сожалению наш проект закрылся (по независящей от нас причине), поэтому вопрос мне до сих пор интересен %))
quot]
А книгу про учет расчетов с контрагентами читать не пробовали?
При переименовании заводится новый контрагент, оформляется договор, а остатки по договору переуступаются с одного контрагента на другого.
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33452930
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял - в основном неправильный инжиниринг бизнес процессов и в связи с этим и гемор в ведении учета.

Изучайте законодательную базу по ведению учета на предприятии.

Мне вот интересно - в бухгалтерии, что будут переписывать все приходные, расходные, договора, спецификации к ним и прочее, если контрагент переименовался? Спросите у Главбуха для начала....
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33453659
dm82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валентин КНасколько я понял - в основном неправильный инжиниринг бизнес процессов и в связи с этим и гемор в ведении учета.

Изучайте законодательную базу по ведению учета на предприятии.

Мне вот интересно - в бухгалтерии, что будут переписывать все приходные, расходные, договора, спецификации к ним и прочее, если контрагент переименовался? Спросите у Главбуха для начала....

Полностью согласен. Но есть одно маленькое но: если предприятие вполне успешно работает не по нормативным документам, а по понятиям (гадкое слово, но по другому не назовешь). И если ты говоришь, что по нормативам - вот так, а тебе отвечают, что народ обо всем договорился и давай все делай совсем по другому. В моем случае исключения составляют 30-40% от общего числа операций. Поэтому в некоторых случаях это не неправильная постановка тех.процесса, а единственно возможный вариант решения задачи.

З.Ы. Хотя вчера на мозговом штурме мы пришли к мысли отказаться от хронологических баз данных и подменить их стандартной реляционной базой с чем-то вроде самовосстанавливающихся логов
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33453696
Slider_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А посто заводить новую учетную запись для этой фирмы, а старую помечать, типа "умерла", "переименовалась", можно даже связку с новой организовать. По умолчнию работаем с новой учетной записью, а когда надо - достаем старую...
...
Рейтинг: 0 / 0
Значения полей в зависимости от даты.
    #33453727
dm82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Slider_spbПо умолчнию работаем с новой учетной записью, а когда надо - достаем старую...
Вот-вот. Это и будем реализовывать. Только у меня так: помека на удаление - это одно, а исправления фиксятся в специалном логе и оттуда в случае необходимости ресторятся. А для скоростных запросов ко всей истории можно будет сделать специальную таблицу только для просмотра. Ну это пока в черновике... додумать надо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Значения полей в зависимости от даты.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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