2012-04-04 13 views
0

私はコミュニティのリストを持っています。各コミュニティにはメンバーのリストがあります。現在、メンバー名をカンマで区切って各コミュニティを1行に格納しています。これは、より小さな不変のコミュニティに適しています。しかし、コミュニティが大きく成長しているので、75,000人のメンバーと話しましょう。コミュニティの負荷はますます低くなっています。また、コミュニティの部分的な読み込み(無作為に10人のメンバーを言う)もあまり優雅ではありません。このシナリオでは、コミュニティテーブルに最適なテーブル構造は何ですか?複数のテーブルを使用する理由もあれば、問題はありません。MySQLのコミュニティを格納するためのテーブル構造

答えて

2

使用する3つのテーブル

`community` 

| id | name | other_column_1 | other_column_2 ... 

`user` 

| id | name | other_column_1 | other_column_2 ... 

`community_user` 

| id (autoincrement) | community_id | user_id | 

次にあなたがこの

SELECT cu.id AS entry_id, u.id, u.name FROM `community_user` AS cu 
    LEFT JOIN `user` AS u 
    ON cu.user_id = u.id 
WHERE cu.community_id = <comminuty id> 
ような何かを、コミュニティ内のすべてのユーザーのユーザー情報を取得します
関連する問題