0

現在、Cassandra にユーザー テーブルがあります。

友達関係テーブルを作成したいのですが、どうすればよいかわかりません。最初に、キーを現在のユーザーとして、列を友人として配置することを考えましたが、友人リクエストを送信する機能を実現したかったので、2 人が本当の友人であるかどうかを処理する、accepted という別のオブジェクトが必要だと思います。他の人が友達リクエストを承認したかどうか。多対多のテーブルになると思います。例えば友人関係。

Friendship: {
John Dow: {
10: Mark Seldon,
8: Julian Hendrix,
...
},
Mark Seldon: {
9: John Dow,
...
},
...
}

どんな指示でも大歓迎です。

4

1 に答える 1

0

これは、CQLで(たとえば)「複合キー」{userid、friendid}を使用できる新しいテーブル「friends」を作成することで可能になるようです:

CREATE TABLE friends(    
userid varchar,
friendid varchar,
PRIMARY KEY (userid, friendid)
);

これにより、2 人のユーザー間の「友情」関係が定義されます (どちらもユーザー テーブルにエントリがあります)。これにより、いくつかのクエリを実行できます。

  • 「userid」のすべてのフレンドを取得
  • ユーザーIDと「ユーザーx」(特定のフレンドIDを持つ)が存在するかどうかを確認します

これは、リレーションシップを保存するたびに、テーブルに 2 つの「エントリ」を作成する必要があることも意味します: {user1, user2} と {user2, user1}...

于 2013-08-19T12:01:56.480 に答える