Шаблон DAO для нескольких таблиц

#design-patterns #dao

#шаблоны проектирования #dao

Вопрос:

Я знаю, что это обсуждалось ранее, но я не могу найти ответ.. Моя проблема в том, что я хочу реализовать шаблон DAO в нереляционной базе данных…
Для простых действий CRUD это кажется простым…
Просто получите дескриптор базы данных, предоставляемый фабрикой DAO или во время построения объекта Dao…
Проблема в том, что когда мне нужно получить данные из нескольких таблиц

Если возвращаемый объект принадлежит объединению 2 или более таблиц, куда я должен его поместить?

Например, если я хочу получить адреса клиентов для некоторых заказов? Должен ли я возвращать весь список клиентов, у которых заполнено только поле адреса?? И куда я должен это поместить? В CustomerDAO? Кажется, что DAO слишком сильно разрастется, чтобы охватить все..

Кажется, что это становится слишком сложным. Также для отношений родитель-потомок я должен создать ParentChildDao? чтобы вернуть объект ParentDao?

Ответ №1:

Вы можете оставить конкретный DAO для операций CRUD и создавать пользовательские объекты запроса для конкретных операций на основе их бизнес-функции (истории пользователей, варианты использования) или других критериев. Но на самом деле, если ваш доступ к данным усложняется, возможно, лучше переключиться на какой-нибудь ORM.