私は右のメニューに自分のサイトの10の最も人気のあるタグ(科目)を要素として挙げることができます。Cakephpで2つ以下のクエリでストーリーの数を含むすべてのタグ(HABTM)をリストする方法は?
私は今これについて30分を考えていましたが、これを行うために1つのステートメントで終わるのとは違って、私はサイトのパフォーマンスを大幅に低下させる3つのステートメントで終わっているようです。
私は短編小説とタグを持つサイトを持っています。これは、テーブル 'stories_tags'を使用するHABTM(Has-and-belong-to-many)関係です。ストーリーは複数のタグを持つことができ、タグは複数のストーリーで使用できます。
目標は、タグあたりのストーリー数の最大値から、$ tagname($ storycountwiththattag)を10番目に高い値にリストすることです。私はこれまでこれを持っていますが、あまりにも近くには見えません。
$tags = $this->Tag->find('all',array('fields'=>array('Tag.name')));
$tags_count = $this->Tag->Story->find('count',array('conditions'=>array('Story.tag'=>$tags)));
debug($tags_count);
私は多くの可能なクエリを試しました。タグごとに1カウントクエリを実行しているすべてのタグ
- ...
- それらの結果を使用してください:私は、制限のfind(「すべて」)さん、またはではでそれを行うことができます。
しかし私はより良いアプリケーションを作るためにCakephpを選んだので、どうやってこれをやるのだろうと思った!このサイトでは毎日数百人の訪問者しかいないので、パフォーマンスはきわめて重要ではありませんが、極端に愚かなクエリを避けることは、パフォーマンス上の不利益が問題にならない場合でも対処すべきことです。
は