Parse.com javascript API (本質的にバックボーン モデル) を使用して友情をモデル化しようとしています。組み込みの Parse.com ユーザー クラスを使用しています。私は mySQL / リレーショナル DB モデルのバックグラウンドを持っていますが、私の考えを非 SQL / 非正規化された方法に変えるのは難しいと感じています。
標準の facebook スタイルのメソッドをサポートする必要があります。
特定のユーザーについて、友人のコレクションを取得できるようにしたいと考えています (両方向で受け入れられた友情)。
Friendships モデルを使用し、ユーザー モデルをイニシエーターとアクセプターとして参照することを検討していました。
initiator | acceptor | status
==========+==========+========
user a | user b | accepted
user b | user c |
user c | user a | accepted
これが最善の方法であるかどうかはわかりません。また、ACL で保護する方法についてもわかりません。友情関係を削除するには、友情関係にある両方のユーザーが行を更新できる必要があるのではないかと心配しています。また、ユーザー b は、別のユーザーの友情を明らかにするような Parse API への要求を行うことができないようにする必要があります。
ユーザー a の友人を照会するには、2 つの照会を行います。1 つはユーザー a が受け入れ側であり、もう 1 つは開始者です。
これがこれをモデル化するための受け入れ可能な方法であるかどうか、またはそうでない場合は、誰かがコメントして改善を提案してください。ありがとう!
2012 年 8 月 8 日更新: ここに表示される問題: フレンドシップ クラスの各行に ACL を設定して、イニシエーターが行を書き込むことができるようにすると、公開されて読み取り可能になるため、アクセプターは行を更新できなくなります。ステータスへ = 承認済み。
友情はテーブルの 2 つの行としてモデル化できますか? 例えば:
initiator | acceptor | status
==========+==========+========
user a | user b | requested
user b | user a | accepted
ただし、特定のユーザーの友達を取得するためにそれを照会する方法がわかりません!