powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура справочника КонтрАгентов ;)
9 сообщений из 9, страница 1 из 1
Структура справочника КонтрАгентов ;)
    #32322965
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь уйти от существующей жесткой иерархии справочника объектов учета (клиенты, поставщики, отделы, сотрудники, машины, основные средства, etc.) организованной на схеме с жестким числом подчинений.
В плане схема с таблицей связей, позволяющая создавать неопределенное количество не только связей, но и их видов/слоев.
Проблема в следующем: Необходимо учитывать изменения некоторых реквизитов объектов (например форму собственности, фамилию или номер паспорта (ключи, конечно, везде суррогатные)). Т.е. отчеты за прошлые периоды должны показывать те реквизиты, которые действовавшие на тот момент. Вместе с тем, необходимо вместе с этими реквизитами учитывать и связи объекта в тот момент. Т.е. если я беру отчет по объектам входящим в отдел "Розница", я их вижу в прошлых периодах, даже если они в дальнейшем были перемещены в другие отделы. Так вот, что-то у меня с таблицами не вытанцовывается :( Может не с той стороны подхожу? Посоветуйте в какую сторону грести, может похожее решение у кого есть и не жалко :)
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32322998
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая структура БД и инструменты, и не жалко. Yaffil/Delphi
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32323095
Фотография Miktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас подобная проблема была при проекторовании справочника организаций (контрагентов если нравится). так вот, решили делать так: набор сущностей организации - по потребностям. Связанные с организацией 2 таблицы: расчетные счета, аналитики (какие-то признаки отношений приедприятия: район, источник финансирования и пр.), Все сущности с течением времени могут изменяться. Сделали так, если с момента последнего изменения на данное предприятие были выписаны документы (т.е. образовались зависимые связи), создается копия, куда и вносится сделанные изменения. У старого предприятия устанавливается дата закрытия периода действия, сквозной код заносится в новое. Сквозной код необходим для дальнейшей отчетности по данному предприятию. Ведь то, что он сменил форму собственности или адрес не снимает с него долгов ;) Вроде так. Может что непонятно - объясню.
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32323228
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем-то я подразумевал подобную систему, с созданием копии sub-объекта, но с уже новыми реквизитами и дальнейшие ссылки уже на него. У меня получилась схемка, типа (упрощенно):

Objects:
ObjectId
Name

ObjRec:
ObjRecId
ObjectId
FullName
DatBegin
DatEnd

Actions:
ActionId
ObjRecFrom
ObjRecTo
SumMoney

Соответственно при изменении FullName, в таблице ObjRec создается копия, новый sub-объект (извиняюсь за такую терминологию) с новым полным наименованием и ссылки в таблице Actions уже идут на нее. Даты действия в ObjRec необходимы при необходимости выписать документ задним числом, так бы хватило и одного boolean, означающего что sub-объект содержит не последнюю версию данных. Все очень красиво и, казалось бы, просто. НО! Необходимо хранить и связи между объектами в ретроспективе. Тоже, вроде как, несложно. Создал табличку вида

ObjectRelations:
ObjectId_Up
ObjectId_Dwn
TypeRelation
DatBegin
DatEnd

и ворочай там чего хочешь. Однако, если с первой связкой, благодаря созданию новой записи при изменении реквизита, при построении отчетов и выписке новых документов я вообще могу не рассматривать поля дат, то здесь без них вообще чихнуть не могу. Сплошные вычисления. Кошмар. ПАмАгите!!! ;)
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32324119
Fagrant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может народу не очень понятно, почему я так бьюсь за эффективность обработок. Есть один маленький ньюанс - реализовывать я это вынужден в M$Access, по крайней мере пока. Соответственно, файл-сервер, никаких тебе ХП и ВСЕ считается на клиенте. Поневоле начнешь искать наиболее эффективную реализацию. Что-то мне не верится, что я придумал самый лучший вариант. грустно так: Помоогиитее!!!
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32324186
___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
___
Гость
Есть такая структура БД и инструменты, и не жалко. Yaffil/Delphi

А что в поставку Yaffil/Delphi входит куча примеров построения схем БД для решения подобных задач?
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32324571
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не входит, сами писали, успешно работает
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32326460
IgorK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Могун: Если не жалко, поделись на посмотреть
мыл - ikogovuk()krd.ru
...
Рейтинг: 0 / 0
Структура справочника КонтрАгентов ;)
    #32326509
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непременно. Если будут вопросы - пожалуйста.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура справочника КонтрАгентов ;)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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