Re: Как лучше организовать систему с изменяющейся логикой?
От: Sochin http://forum.telenet.dn.ua
Дата: 16.12.05 22:27
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Есть система БД — клиент.


В>И БД (таблицы, код) и клиент могут быть подвержены изменениям (очень существенным), однако при этом заказчик хочет, чтобы была возможность в любой момент времени открыть дату, когда была другая логика, другие таблицы, отчеты и так далее.


Не знаю насколько Вы располагаете временем и желанием делать все самому, но если таковое имеется то есть несколько соображений. Думаю, что нечто подобное можно реализовать, но это потребует создания дополнительного инструментария.
Идея — хранить в целевой базе данных не сущности предметной области, а их описания. Любая сущность в базе данных представлена набором своих атрибутов, а значит можно хранить и оперировать не целыми сущностями, а наборами атрибутов.
Другими словами в базе данных будет примерно такой набор базовых сущностей(т.е. таблиц): «сущность», «атрибут», «значение атрибута сущности».
Далее, в отдельной таблице нужно будет хранить алгоритмы, которые осуществляют сборку всех атрибутов в единую сущность, с которой и будет работать приложение. Здесь же хранить историю изменения представления сущности, т.е. с такого-то числа сущность собирается по такому-то правилу из таких-то атрибутов, с другого числа — из других атрибутов с другими правилами сборки.
Если это реализовать, то в небольшом количестве исходных таблиц можно будет единоообразно хранить(и обрабатывать) все сущности с которыми работает и будет работать система: т.е. собственно сущности предметной области + отчеты, структура и алгоритмы получения наборов данных, их формирующих, с учетом истории изменения + клиент и его изменения.
Фуух. Вышло несколько сумбурно, надеюсь что-то будет полезным.
just for fun :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.