私はしばしばこの問題に直面します。
たとえば、ブログアプリケーションでは、すべてのアクティブユーザーにメールを送信する必要があります。
私がやっていることは、最後のログインのいくつかの条件がいくつかの値よりも大きいユーザーにfindAllを記述し、すべてのユーザーオブジェクトを取得することです...次に、すべてのユーザーモデルオブジェクトを介してforeachを実行し、電子メールを配列に格納してから、アレイ。
言い換えれば、バックエンドで起こっていることは、モデル全体をロードしているのに0.5%
、その情報はほとんど必要ないのに、ダーティコードを実行して配列に値を取得し、それを処理することです。
パフォーマンスと汚いコードでかなり悪いではありませんか。
今私が考えることができる他のアプローチはcommandBuilder
、クエリを使用して記述し、次に同じダーティコードを実行して配列の値を取得することです..パフォーマンスの1つの問題は解決されました..しかし、人々がMVCフレームワークでSQLを書くことは、本当に良い考えではありません。
私が本当に欲しいのは...単一の列の場合は配列の列値を、複数の列の場合はインデックスとして列名を持つ配列を提供するいくつかの同様の関数です。
ですから、私が考えているのは、ActiveRecordなどを拡張して実装することです。確認したいのは、誰かがすでに同様の何かを実装しているかどうか、またはそれについていくつかのアイデアがあるかどうかです。