2012-01-31 10 views
1

MVCパターンでWebアプリケーションを作成しようとしていますが、アプリケーションによって使用されるすべてのデータベース呼び出しで1つのクラスを持つことをお勧めしたいと思いますこのクラスではPDOデータベースアクセス用のPHPプログラミングデザインパターン

次に、このクラスのインスタンスを必要に応じて作成します。

データベースにアクセスする必要がある特定のクラス(モデルまたはコントローラ)にデータベース呼び出しを混在させる方が良いでしょうか?

答えて

1

ええと、これは良い質問です。それはもっと個人的な意見ですが、私が通常行うことは、すべてのdb呼び出しを処理する単一のDatabaseオブジェクトを作成し、必要なものに対して異なるdbオブジェクトを作成することです。たとえば、私はUserDBオブジェクトを作成し、その中にユーザーのために一意のDB呼び出しを配置し​​ます。ユーザーグループがある場合は、UserGroupDBオブジェクトを作成し、それを使用して必要なすべてのdbクエリを呼び出すこともできます。これにより、コードを簡単に読み取ることができ、システムの複数の部分で使用でき、DBロジックを1つの場所に保持することができます。すべてのDBクエリを持つ単一のDBオブジェクトを作成する必要はありません。これは、システム内のすべてのページでほとんどのクエリが不要になるため、明らかなオーバーヘッドになります。

こちらがお役に立てば幸いです。

1

通常、データアクセスはモデルによって処理されますが、モデルがデータアクセスレイヤと同義ではない場合があります。

より洗練されたコードでは、データアクセスレイヤーと具体的なクラスを持つ抽象クラスを作成することをお勧めします。

0

実際には、データアクセスオブジェクトDAOは、SQLでのみ異なります。したがって、1つのDBオブジェクトを使用して、選択と変更(更新、挿入、削除)を含む問合せをカプセル化します。異なる表またはモジュールに異なるDAOがあり、SQLを構築し、DBオブジェクトを使用して問合せを行います。