Я сделаю все возможное, чтобы быть кратким и полностью объяснительным в этом затруднительном положении.
На сайте, которым я управляю, мы позволяем менеджеру просматривать их "Рекрутинг Downline", который включает в себя список всех агентов, которых они наняли лично, а также рекрутов, которых этот конкретный агент (и так далее, и так далее) привел к Команда.
Например:
- Я набираю двух агентов, А и В.
- А набирает двух агентов, С и D.
- B набирает двух агентов, E и F.
- D набирает двух агентов G и H.
- C, E и F ничего не делают.
В базе данных каждая запись об отдельном агенте имеет поле для «ссылающегося агента», в котором указывается набранный агент.
- Как верхний уровень, когда я нажимаю «Мой
Новобранцы ", мне показывают список всех
субагенты (потому что они ВСЕ падают
под моим зонтиком).
- A может просматривать C, D, G и H.
- B может видеть только E и F как
они его единственные новобранцы
и они никого не привели на
доска.
Хотя эта функциональность работает отлично, она имеет недостатки по двум причинам:
Из-за особенностей построения наших PHP-скриптов мы не можем отсортировать данные уровня комиссии в целом. Пример: даже когда мы с топ-менеджером видим всех, сортировка по «уровню комиссии» сортирует моих непосредственных агентов по критериям, затем их нижестоящий элемент как элемент, а затем продолжает сортировку на основе моих критериев. Это трудно понять, поэтому для демонстрации предположим, что в таблице ниже показан «уровень комиссии» для ВСЕХ агентов:
- А, 7
- B, 6
- С, 5
- Д, 6
- E, 5
- F, 2
- G, 5
- Н, 1
Примечание: агент НИКОГДА не может набирать другого агента на более высоком уровне, чем он сидит, но он может набирать на ЛЮБОМ уровне ниже их (например, 7 может набирать на 1,2,3,4,5,6, в то время как 3 может набирать только 1,2).
ОТ МОЕЙ (высокого уровня) перспективы,
Хотя было бы целесообразно, чтобы данные были «отсортированы по уровню комиссии» следующим образом:
A, D, B, G, C, E, F, H - это не тот случай.
Вместо этого (с точки зрения главного агента):
A, D, G, H, C, B, E, F
в принципе, каждый цикл while зависит от номера прямого агента, который определяет, кто будет следующим в строке.
Я понимаю, что это "очень" трудно понять, но дайте мне знать, если я смогу дать какое-либо дополнительное понимание нашей текущей проблемы "сортировки".