2012-04-04 63 views
0

我有一個社區列表。每個社區都有一個成員名單。目前,我將每個社區連接在一起,成員名稱之間用逗號隔開。這對較小的不可改變的社區很有用。但是隨着社區的規模越來越大,讓我們說有75,000名成員,社區的加載速度越來越慢。部分加載社區(讓我們說隨機10個成員)也不是很優雅。在這種情況下,社區表的最佳表結構是什麼?如果有這樣做的理由,多個表的使用也不是問題。用於在MySQL中存儲社區的表結構

回答

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>