私はメッセージモデルを持っていますが、複数の受信者が必要な場合があります。 また、メッセージが表示されたかどうか(読み取り/未読)を各受信者に伝えたいと思っています。また、受信者がメッセージを削除できるようにしたいと思います。Google App Engine:受信者のリストプロパティを使用するメッセージクラス
2つの可能な解決策は以下の通りです。私はそれぞれメッセージモデルとユーザーモデルを持っています。 (ここではhttp://www.google.com/events/io/2009/sessions/BuildingScalableComplexApps.html提示のアイデアを使用して)最初の場合
-
私がメッセージを受信したメッセージに親を設定するユーザーを含むListPropertyを持ってMessageReceiversクラスを持っています。私はこれを
messages = db.GqlQuery('SELECT __key__ FROM MessageReceivers WHERE receivers = :1', user)
と問い合わせてdb.get([ key.parent() for key in messages ])
と照会します。メッセージの状態を保存する方法がわからないという問題があります。メッセージの状態が読み込まれているかどうか、ユーザーに新しいメッセージがあるかどうかは問題です。追加の問題は、メッセージを削除するオーバーヘッドです(ユーザーを受信者リストのプロパティから削除する必要があります)
- 2番目の場合:メッセージとユーザーへのリンクを持つMessageReceiverがあり、 (読み取り/未読)。
どちらの方がパフォーマンスが優れていると思われますか?そして最初の場合には、メッセージのステータスを処理するための提案があります。