3

私は ORM を初めて使用しますが、その可能性にはすでに感銘を受けています。

Facebook のようなメッセージング システム (複数のユーザー チャットを可能にするメッセージ スレッド) を設計するときに、解決方法がわからない問題に直面しました。

DocumentManager::find(...) で MessageThread をロードした後、すべてのメッセージを含む MessageThread オブジェクト全体を取得します。メモリの制限により、これは良い考えではないかもしれません。

したがって、私の質問は、メッセージをオンデマンドで動的にロードする方法があるかどうかです。そのため、MessageThread オブジェクトを取得しますが、メッセージ プロパティにアクセスすると、おそらく 50 個のメッセージのバンドルで動的にロードされますか?

ありがとうございました。

これらは、User、Message、および MessageThread クラスです。

Doctrine MongoDB ODM の使用

class User {
    /** @Id */
    protected $id;  
}

class Message
{
    /** @Id */
    protected $id;

    /** @ReferenceOne(targetDocument="User") */
    protected $sender;

    /** @String */
    protected $body;

    /** @Date */
    protected $sent;

    /** @EmbedMany */
    protected $read;
}


class MessageThread
{
     /** @Id */
     protected $id;

     ...

     /** @ReferenceMany(targetDocument="User") */
     protected $participants;

     //Maybe EmbedMany is better in this case
     /**
     * @ReferenceMany(
     *      targetDocument="Message",
     * )
     */
     protected $messages;

     ...
}
4

0 に答える 0