Ответы пользователя по тегу Проектирование баз данных
  • Многоуровневая вложенность БД?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Добавить ссылку на пользователя-родителя (parent_id).

    А чтобы иметь быстрый доступ ко всей цепочки и не извращаться, можно сделать дополнительное поле, в котором прописать эту самую цепочку. Для пользователя Максим ref_chain = Андрей/Дмитрий. В таблицу добавить триггеры для проверки обновления цепочки. При начислении бонусов, можно разбивать ref_chain и начислять каждому в зависимости от уровня (индекса). Если запросов будет много, то можно сделать отдельную таблицу, в которой будут прописаны связи, явным образом для каждого пользователя (чтобы избежать динамического построения связей):
    Андрей  | level 0 | null
    Дмитрий | level 1 | Андрей
    Максим  | level 1 | Дмитрий
    Максим  | level 2 | Андрей
    Ответ написан
    Комментировать