Добрыий день,
Имеетсжя следующая структура данных
class Object
{
public:
int id ;
TypeA a ;
TypeB b ;
...
Также имеется репозиториий ( База данных ) , которая хранит обьекты типа Object , назовем ее Object_DB
На данныий момент Репозиторий предоставлает простой метод set/get для извлечения обьекта типа Object по идентификатору ( ключ ).
Задача .
Обьект типа Object приходит по сети , но не как цельная структура , а как отдельные элементы .
Например в одном сообсщении (id, TypeA ) , в другом (id, TypeB )
Именно эти поля необходимо обновить для соответствующего обьекта в БД.
Поскольку обьект не приходит в полном обьеме , то приходиться вынимать из БД существующиий обьект , изменять необходимые поля и запихивать его обратно в БД.
Другое решение , мне кажеться менее правильное и приемлемое , предоставить в Object_DB соответствуюсщие методы для каждого типа
set ( id , const TypeA& ) ;
set ( id , const TypeB& ) ;
Вопрос :
Как посоветуете организовать структуры БД Object_DB , а такзже типы ( с указанием методов ) Object , TypeA , TypeB и т.д.
чтобы можно было эффективно обновлять отдельную часть обьекта Object в БД , используя один интерфеийс в Object_DB
set ( id , const Object& ) ;
Другими словами , чтобы обьекты Object умно копировали только то что необходимо.
Надеюсь вопрос понятен
Спасибо