2017-11-24 6 views
0

mysqlを利用するHey imビルドアプリです。ユーザーテーブルにユーザーデータを格納し、グループテーブルにグループデータを格納しています。予想されるユーザーの合計が100を少し下回っていますデータを格納するときのmysqlのテーブル構造の好ましい方法はどれですか

私は、以下のようにそのような構造を構築する上での欠点があるのか​​疑問に思っていました。私はmysqlデータを管理するためにPHPを使用しています。

今、私は2つのテーブルを持っている:

Users 
----- 

id, firstname, lastname, in_groups 
---------------------------------- 

1, Jake, New house, [1] 

35, Gavin, McInnes, [1, 32, 41] 

Groups 
------ 

id, group_name, group_password, total 
-------------------------------------------- 

1, Destroyers, password, 1 

32, Gamers, password, 41 

41, Media, password, 22 

は、この良い方法ですか私は

in_group 
-------- 

id, user_id, group_id 
--------------------- 
1, 1, 1 

2, 35, 1 

3, 35, 32 

4, 35, 41 
+2

私は2テーブルはちょうどいいと思う。そのテーブルの最小数を使用する方が良いです –

+0

@Anandhunadeshそれは私が言われているものです。今私は、私の現在の方法がユーザー量のスカイロケットなら遅くなるのだろうか? –

+0

テーブルには4つのフィールドしかありません。私はあなたが番号の記録を心配する必要はないと思う。さらに、テーブルから1つの列だけを分離しても、大きな変更はありません。ちょうどUR設計に固執する –

答えて

1

間違いなく良い別のin_groupテーブルを使用したい複数のテーブルにこれを分ける必要があります。これにより、「グループ内のユーザー」(現在は難しい)を「ユーザー用のグループ」(現在は簡単)として簡単に選択できるほか、簡単な「グループ用のユーザー」クエリでも簡単に選択できます。それを個別に解析し、別のテーブルを使用して結果の行を読み込むだけです。

複数の更新が同時に行われている場合は、別の利点があります。現在、更新はユーザーのグループ全体のセットを置き換えます。表を分離することにより、ユーザーのグループを追加または削除することができます。ユーザーのグループに影響を与えずにグループを追加または削除できます。その潜在的な問題を回避する方法は他にもありますが、別のテーブルを使用すると処理が非常に簡単になります。

関連する問題