2017-08-24 10 views
0

MySQLを使用してネットワークにグループを設定しようとしています。ユーザーはグループに参加したり、グループを作成することができます。以下の2つのオプションのうち、どのソリューションが優れているかを特定しようとしています。グループのSQLテーブル?どちらの方が良いでしょうか?

最初のソリューション:

私は列を持つ "グループ" と呼ばれる表を作成します。このソリューションで

- GroupID 
- GroupName 
- Createtime 
- GroupMembers... 

私はこの「user1のような列GroupMembersでユーザーを救う;/user2の;/" 等々。これが私の最初の解決策です。これが第2の解決策より速いかどうかはわかりません。私は最初のソリューションのようにテーブルを作成しますが、列GroupMembersなし、と私はGroupMembersための第二のテーブルを作成します

:私はちょうどGroupMembersなど

第二の溶液を検索したいです。 このテーブルには、列を次ています:グループに参加すると

-GroupID //The ID of the group in the other table. 
-UserID 

、それは上記の表に格納されます。

+1

第2のアプローチ –

答えて

1

最初の解決策は正規化を破るためです。

第2の解決策は良好です。

1

典型的なアプローチは、Usersテーブル、Groupsテーブル、UserGroups(またはGroupUsers)テーブルを持つことです。

関連する問題