用于在MySQL中存储社区的表结构

问题描述:

我有一个社区列表。每个社区都有一个成员名单。目前,我将每个社区连接在一起,成员名称之间用逗号隔开。这对较小的不可改变的社区很有用。但是随着社区的规模越来越大,让我们说有75,000名成员,社区的加载速度越来越慢。部分加载社区(让我们说随机10个成员)也不是很优雅。在这种情况下,社区表的最佳表结构是什么?如果有这样做的理由,多个表的使用也不是问题。用于在MySQL中存储社区的表结构

使用三个表

`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>