QA@IT
«質問へ戻る

質問を投稿

DAOの作成単位について

MVCでWebアプリを作成していると、ほぼ必ずDAOを作成することになると思いますが、DAOの作成単位にいつも悩みます。今までの経験によると大きく二つ「テーブル単位」か「サービス(ビジネスロジック)単位」にDAOを作成している方が多いようですが、それぞれの作成単位によってメリットデメリットがあると思います。この二つ以外にもDAOの作成単位があるかもしれませんが、どちらがよいのか皆さんの意見を聞かせていただきたいです。

1.テーブル単位
【メリット】
 ・同じ処理(SQL)が複数DAOに分散しない
【デメリット】
 ・複数テーブル情報をまとめてSELECTするような場合、どのテーブルDAOに実装するか迷う。
 ・トランザクション処理が必要な一連の処理を記述する場合、テーブル単位では記述できない。

2.サービス(ビジネスロジック)単位
【メリット】
 ・トランザクション処理が必要な一連の処理を記述する場合、違和感が無い。
【デメリット】
 ・複数のサービスDAOで同じ処理(SQL)が書かれる可能性がある。

質問者:どらねこ

MVCでWebアプリを作成していると、ほぼ必ずDAOを作成することになると思いますが、DAOの作成単位にいつも悩みます。今までの経験によると大きく二つ「テーブル単位」か「サービス(ビジネスロジック)単位」にDAOを作成している方が多いようですが、それぞれの作成単位によってメリットデメリットがあると思います。この二つ以外にもDAOの作成単位があるかもしれませんが、どちらがよいのか皆さんの意見を聞かせていただきたいです。

1.テーブル単位
【メリット】
 ・同じ処理(SQL)が複数DAOに分散しない
【デメリット】
 ・複数テーブル情報をまとめてSELECTするような場合、どのテーブルDAOに実装するか迷う。
 ・トランザクション処理が必要な一連の処理を記述する場合、テーブル単位では記述できない。

2.サービス(ビジネスロジック)単位
【メリット】
 ・トランザクション処理が必要な一連の処理を記述する場合、違和感が無い。
【デメリット】
 ・複数のサービスDAOで同じ処理(SQL)が書かれる可能性がある。


質問者:どらねこ