-1

こんにちは最近、私は作業が必要な 5 つのテーブルがある大規模なプロジェクトに取り組んでいます。これは、投稿テーブルのすべての投稿と特定の投稿のすべてのコメントを一覧表示したい私のシナリオです。各コメントには作成者がいるため、その情報も必要です。簡単にするために

ポスト 1

-> 投稿の説明 [投稿テーブルから取得]

-> 投稿 1 に関連するコメント [コメント テーブルから取得、外部キーとして post_id も持つ]

-> コメントされたユーザー情報 [コメント テーブルは外部キーとして user_id を持っています]

ポスト 2

-> 投稿の説明 [投稿テーブルから取得]

-> 投稿 2 に関連するコメント [コメント テーブルから取得、外部キーとして post_id も持つ]

-> コメントされたユーザー情報 [コメント テーブルは外部キーとして user_id を持っています]

.

.

.

投稿 {n}

-> 投稿の説明 [投稿テーブルから取得]

-> 投稿 {n} に関連するコメント [コメント テーブルから取得、外部キーとして post_id も持つ]

-> コメントされたユーザー情報 [コメント テーブルは外部キーとして user_id を持っています]

テーブルに10000件以上の投稿があるとします

これで作業するのを手伝ってくれる人はいますか?

また、このタスクを実行するためにデータベースレイヤーからテーブルビューを作成することも考えました

4

1 に答える 1

0

モデルのリレーションが正しく設定されていれば(CakePHP の本はこの問題に関する優れたリファレンスであるため、これについては詳しく説明しません)、これは比較的簡単です。

各コメント投稿のユーザー データも取得できるようにするには、Containableを使用する必要があります。繰り返しますが、それが何をするのかについては、この本の方がうまく説明できるので、あまり説明しません。

以下にサンプル クエリを示しますが、100% 正しいとは限らないことに注意してください (特に、列の名前がわからないことを考えると)。

$data = $this->Post->find('all', array(
    'fields' => array('Post.description'),
    'contains' => array(
        'Comments',
        'Commenter' //Alias for the User Model
    )  
    )); 

上記のコメントの説明: これは、Comment hasOne Commenter => array('className' => 'User')

于 2013-07-11T18:29:18.697 に答える