2

私は、ユーザーを含むグループを作成したいプログラムに取り組んでいます。このグループは常にそこにあり、MySQLデータベースに保存されます。これを行う方法がわかりません。つまり、次のようなテーブルを作成できます。

GROUPID INT PRIMARY KEY
GROUPNAME TEXT
USER1ID INT
USER2ID INT
USER3ID INT

次に、この場合は3人のユーザーのように取ることができるテーブルを作成する必要がありますが、パフォーマンスが低く、グループを動的に大きくする可能性はありません。グループから友達リストを作成したい場合、ユーザーが持つことができる友達は3人だけとは言えません。どうすればこの問題を解決できますか?

4

1 に答える 1

4

2つのテーブルが必要です。

GROUPS - GroupId, GroupName
USERS - UserId, UserName, Password, GroupId

USERSのGroupIdは、ユーザーエントリをGROUPSにリンクします。外部キーを使用してリンクを課すこともできます(すべきです)。

ユーザーが複数のグループに属することができる場合は、多対多の関係が必要になります。これは、次のような3番目のテーブルで実現されます。

GROUPS - GroupId, GroupName 
USERS - UserId, UserName, Password
USERS_GROUPS - UserId, GroupId
于 2012-12-17T12:24:31.940 に答える