Как бороться с большим деревом mySQL - PullRequest
2 голосов
/ 26 ноября 2010


Я работаю над проектом, для которого регистрация пользователей умножается следующим образом.
1-й месяц -> 1 пользователь
2-й месяц -> 4 пользователя подпадают под вышеуказанного пользователя
3-й месяц -> 16 пользователей (т. Е. На каждого из 4 пользователей приходится 4 пользователя).
4-й месяц -> 64 пользователя (т. Е. На каждого из 16 пользователей приходится 4 пользователя)

, например: 1
2 | 2
8 | 8
32 | 32

и продолжается ...

Пожалуйста, дайте мне совет, как сохранить это в базе данных. Заранее спасибо.

1 Ответ

2 голосов
/ 26 ноября 2010

Предполагая, что user_id является вашим первичным ключом, создайте столбец parent, который содержит user_id родительского пользователя.Например:

user_id  parent
1        NULL
2        1
3        1
4        1
5        1
6        2
...

Вам также потребуется создать индекс для столбца parent, чтобы можно было быстро выполнить обратный поиск (т. Е. Найти все дочерние элементы данного пользователя).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...