0

コミュニティのリストがあります。各コミュニティにはメンバーのリストがあります。現在、メンバー名をコンマで区切って各コミュニティを続けて保存しています。これは、小規模な不変のコミュニティに適しています。しかし、コミュニティが大きくなるにつれて、たとえば75,000人のメンバーがいるとすると、コミュニティの読み込みが遅くなります。また、コミュニティの部分的なロード(ランダムな10人のメンバーとしましょう)もあまりエレガントではありません。このシナリオでのコミュニティテーブルに最適なテーブル構造は何でしょうか。複数のテーブルを使用する理由がある場合は、複数のテーブルの使用も問題になりません。

4

1 に答える 1

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>
于 2012-04-04T13:10:46.223 に答える