PHP と MySql で構築されたドメイン モデルとデータ マッパーがあります。一部のドメイン オブジェクトは他のオブジェクトのコンテキストでのみ表示されます。これらの場合、依存マッピングを使用しています。つまり、依存オブジェクトは独自のマッパーを持たず、代わりに所有者のマッパーによって保持されます。
パフォーマンス上の理由から、複数のテーブルを結合し、(テーブルごとに 1 つのクエリではなく) 1 つの SQL クエリを発行していますが、ここで問題が発生します。クエリの結果は (もちろん) デカルト結合であり、かなりの量のドメインオブジェクトに入力するための適切なデータを取得するための配列のふるい分け。
たとえば、1 つの親 (P1) と 2 つの子 (C1 および C2) の 3 つのテーブルがあります。P1 の 1 つのレコードに C1 と C2 の両方に 2 つのレコードがある場合、結果セットには 4 つのレコードがあります。一意の値を探して結果セットの配列を循環し、これらから新しい配列を作成することはできますが、それは大変な作業のように思えます。
これはよくある問題です。それを解決する典型的な方法は何ですか?SPL データ構造と反復子を調べましたが、有用なものは見つかりませんでした。本当に必要でない限り、複数のクエリに分割したくありません。
ありがとう!