2

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

ただし、特定のユーザーの友達を取得するためにそれを照会する方法がわかりません!

4

1 に答える 1

1

これを Parse CloudCode で実装してデータ セキュリティを簡素化し、Friend クラスへのすべてのクライアント書き込みアクセスをロックすることにしました。

私は 3 つのクラウド コード関数を持っています... friendRequest、、。これらの関数は、フレンド クラスですべての書き込み操作を行うためのマスター キーで動作します。フレンドシップ内の両方のユーザーの各行に読み取り ACL が追加されるため、自分のフレンドシップのみを表示できます。friendDeletefriendAccept

于 2012-12-03T09:16:17.183 に答える