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

时间:2012-04-04 13:04:43

标签: mysql database database-schema

我有一个社区列表。每个社区都有一个成员列表。目前,我将每个社区存储在一行中,成员名称用逗号分隔。这对较小的不可变社区有利。但随着社区规模的不断扩大,让我们说有75,000名成员,社区的负载变得越来越慢。部分加载社区(让我们说随机的10个成员)也不是很优雅。在这种情况下,社区表的最佳表结构是什么?如果有理由这样做,也不会使用多个表。

1 个答案:

答案 0 :(得分:2)

使用三张表

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