0

ユーザーがお互いにお気に入りまたはブラックリスト (禁止) できるユーザー登録システムのデータ モデルを誰か教えてもらえますか? 私は最善の方法を探していますが、今まで誰も私の質問にうまく答えてくれませんでした。

今までの私のユーザーテーブル

uid(pk) | name | family | blah blah blah ..

参加者が 1 人以下のこのお気に入りとブラックリストを設計する方法がわかりませんか?

1対多の関係である必要があると思いますが、これをどのように設計すればよいですか?

4

2 に答える 2

2

ブラックリストやお気に入りを一覧表示する 2 つ目のテーブルを作成できます

テーブル ID(pk) | userid_src(fk) | userid_dst(fk) | タイプ

ユーザー A がユーザー B をブラックリストに登録し、次にユーザー A がユーザー C をお気に入りにし、ユーザー B と C がお互いをお気に入りにした場合、A は id 1、B id 2 および C id 3 になります。

id(pk) | userid_src(fk) | userid_dst(fk) | type
1      | 1              | 2              | blacklist
2      | 1              | 3              | favourite
3      | 2              | 3              | favourite
4      | 3              | 2              | favourite

編集: 各ユーザーの情報を取得するには:

SELECT * from users
LEFT JOIN users_connections as con ON users.uid = con.userid_src
LEFT JOIN users as userCon ON userCon.uid = con.userid_dst
WHERE users.id = XXX

XXX は現在のユーザーの ID になります。次に、現在のユーザーと、彼がブラックリストに登録またはお気に入りとして追加した各ユーザーとの間の各接続を取得します。

于 2012-12-01T15:14:07.940 に答える
2

既製のデータ モデルを探す場所の 1 つは、databaseanswers.com です。これは、データ モデルをカタログ化したページです。

http://www.databaseanswers.org/data_models/index.htm

ソーシャル ネットワーキング サイトに関するセクションもありますが、かなりまばらです。

于 2012-12-01T18:14:48.837 に答える