私は 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;
...
}