私が見たDAOの例のほとんどは、1つのテーブルのみを含む単純なクエリで構成されています。
複数のテーブルが使用されているSQLクエリが多数あるDAOを使用しないプロジェクトのリファクタリングに取り組んでいます。私の質問は、DAOのモデルを最適に設計する方法です。以下の例では、特定の各クエリをカバーするオブジェクトを作成できます。しかし、これが良い習慣であるかどうかはわかりません。たとえば、各データベーステーブルを表すオブジェクトを1つ持つ方がよいでしょうか。
このクエリをカバーするCustomerPaymentDAO:
select
a.username,
p.creation_date,
p.amount,
c.card_type
from
account a,
payment p,
payment_type t,
payment_card c
where
...
このクエリをカバーするCustomerPurchaseDAO:
select
a.username,
i.name,
i.cost,
c.name,
v.value
from
account a,
item i,
category c,
voucher v
where
...