Как мне сохранить в базе 6 уровней такой структуры, например я самый верхний, ниже два моих рефералкой и у каждого рефералкой 2 своих? Чтобы я например проверить сколько пользователей на втором уровне? И если там не достаёт например одного вставил туда пользователя?
Обычно в проектах я видел простую таблицу users
id - autoincrement primary
user_id int
parent_id int
а запросы что то вроде
SELECT DISTINCT t1.`user_id`,
(SELECT COUNT(*) FROM `users`
WHERE `parent_id` = t1.`user_id` ) AS `count`
FROM `users` t1
Показывает у скольких пользователей в таблице такой же родитель
Что бы узнать кто записан под этим человеком
SELECT `user_id` FROM `users` WHERE `parent_id` = :parent_id
Что бы узнать соседа
SELECT `user_id`
FROM `users`
WHERE `parent_id` = (
SELECT `parent_id`
FROM `users`
WHERE `user_id` = :user_id
) AND `user_id` != :user_id
Кто на вершине?
SELECT `user_id` FROM `users` WHERE `parent_id` IS NULL OR `parent_id` = 0
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости