おおまかにこのようなPHPプロジェクトの戦略パターンを使用しています。この本を参考にデザインパターンを作っています。
単一のテーブルで「挿入」、「検索」、「更新」の具体的な戦略クラスを使用して、データベースから単純な挿入、更新、またはフェッチを行うことができます。
ただし、複数のテーブルを使用する JOIN や VIEW などの複雑なクエリになると、これらのクラスは十分ではありません。
カスタム番号を取得できる戦略クラスを作成するにはどうすればよいですか。JOIN または VIEW を使用して 2 つ以上のテーブルからの列の または、代わりにストアド プロシージャを使用する必要がありますか?
現在、各具体的な戦略クラスは次のようになっています。
interface IStrategy {
public function algorithm(AbstractModel $modelObj, $tablename);
}
class InsertStrategy implements IStrategy{
public function algorithm(AbstractModel $modelObj, $tablename){
// construct SQL statement
// Initialize the Database Object
// Insert data using PDO
}
}