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