Объектная надстройка над БД
От: MadHuman Россия  
Дата: 26.09.05 17:50
Оценка:
Приветствую!
Знаю что тема звучит как избитая, но интенсивный гуглинг и просмотр флеймов на родственные темы результатов не дали, поэтому прошу совета.
Но к делу:
Есть приложение (кадры) со сложной структурой данных — у базовых объектов сотни (несколько сотен) реквизитов с историей изменений со многими уровнями вложенностями. В логике редактирования данных реквизитов реализуются различные проверки. Один из простых примеров:
Если Sum(Сотрудник.ИсполняемыеДолжности.ЗанимаемаяСтавка, по ШтатнойЕдинице) > ШтатнаяЕдиница.РазрешенныхСтавок то ругаемся "Число ставок по дложности такой=то превышает кол-во разрешенных". Как мы видим на таком описательном уровне выглядит все просто, но когда дело доходит до написания запросов к БД да еще и возможно с обработкой на стороне клиента, да еще с учетом истории изменения значений , все становится гораздо хуже — получаются сложные мнгостраничные конструкции (БД — MS SQL), трудемкость их написания достаточно высока (сужу по практике), да еще часто бывает изменяется логика проверок и выборок.

Что бы хотелось: некую надстройку над БД, в которой описывалась структура предметной области данных, связи между ними. И самое главное — какой-то язык и engine запросов, чтобы проще описывать подобные запросы к данным. Понятно что на хитрых выборка и гиганстских агрегациях данных это все в разы будет медленнее прямых запросов, но для этого такая надстройка и не будет испольоваться (будут использоваться прямые SQL запросы к БД). Специфика приложения — небольшие точечные выборки, но по сложной модели данных — и большое их кол-во и часто могут меняться. Всякие Cache , ObjectDB и т.п. объектные БД не подходят, тк в качестве хранилища используется РБД MSSQL и ее менять на "настоящие" объектные БД нет смысла.


Буду признателен за ссылки по теме и просто за дельные мысли, а также есть интерес в приобретении готовых решений или поучаствовать в подобных проектах (возможно и финансово)...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.