2009-04-21 9 views
0

私は2つのテーブル(アイテムとカテゴリ、彼らは彼ら自身で話すと思います)と2つの関連するモデルオブジェクトを持っています。私はデータベースから1項目を取り出す関数の設計決定に直面しています。アイテムのカテゴリ(idだけでなく名前)も返すには、このメソッドが必要です。sqlは別のモデルをジョインするか、呼び出すか?

私は2つのオプションがあります。SQLを使用して、アイテムのモデルでは

  • は、より高速なデータを取得するために参加します。
  • アイテムモデルでは、より良いコードのために、カテゴリモデルを呼び出してデータを取得します。

どのようにすればよいですか?カテゴリのリストなども表示されるので、どの場合でもカテゴリモデルが必要です。

答えて

1

いつでも必要に応じて後で最適化することができます。多くの場合、2番目の選択のオーバーヘッドはごくわずかです。

あなたの時間はそれほど無視できません。誰か(あなたの他の誰か)がコードを管理している時もありません。

コードをきちんとコーディングしてカテゴリを呼び出し、「遅すぎる」と判明した場合は変更してください。

時期尚早最適化はすべての悪の根源です。

0

さらに詳しく知りませんが、これがスピードクリティカルな部分であれば、最初のオプションに傾く傾向がありますアプリケーション。コードにコメントがあることを確認してください。あなたが遊ぶスピードを持っていて、2回の実行の間に時間差があまりありません、私は2番目のことをします。 2年後に戻ってくると、アイテムモデルがカテゴリ情報を引き出している理由はそれほど意味がありません。

0

質問私も直面しています...一般的に、あなたがパフォーマンスを探しているなら、あなたは参加する必要があることがわかりました。速度が問題でない場合は、2番目に進みます。

0

とにかくカテゴリを取得する場合は、それを保存/キャッシュしないで、同じオブジェクトを使用してSQL結合のかわりにカテゴリ名を参照してください。その場合、SQL結合がより速くなるという議論は、今度は無視できる程度です。

速度が重要なデータの膨大な量でなければ、私はおそらくあなたが最も快適に保つ方法で行くでしょう。

関連する問題