Обновление **:
Я изменил название вопроса, чтобы лучше соответствовать общей потребности.В настоящее время у меня есть одна таблица с идентификаторами моих продавцов, соответствующими родительскими идентификаторами, уровнем комиссионных, суммой проданных продуктов и общей комиссией за эти продукты (рассчитывается в выписке по делу, поскольку комиссии зависят от продукта);но проблема, с которой я продолжаю сталкиваться, заключается в следующем:
Я не могу затем пересечь результаты моего запроса и вычислить подкомиссии, которые каждый продавец должен получить в результате своих нижестоящих продавцов (продавцов, которых они имеютвзято на борт на уровнях комиссионных ниже них).
Исходное сообщение:
У меня есть скрипт, который в настоящее время «работает», но содержит почти 3600 строк кода и выполняет более 50 вызовов базы данных в одном скрипте.Исходя из моего опыта, невозможно по-настоящему «зациклить» сценарий и свести его к минимуму, потому что каждый вызов базы данных является подзапросом запросов, основанных на идентификаторах рефералов.
Возможно, я могу привести очень простой примериз того, что я пытаюсь сделать, и посмотреть, есть ли у кого-то опыт с чем-то похожим.
В моем примере есть три таблицы:
Таблица 1 - Продавцы
ID | Comm_level | Parent
-----------------------------------
1 | 4 | NULL
2 | 3 | 1
3 | 2 | 1
4 | 2 | 2
5 | 2 | 2
6 | 1 | 3
Если ID - это идентификатор одного из наших торговых агентов, comm_level будет определять процент его комиссионного вознаграждения за каждый продукт, который он продает, а родительский - идентификатор, для которого был набран конкретный агент.В приведенном выше примере 1 - главный агент, он набрал двух агентов, 2 и 3. 2 - два агента, 4 и 5. 3 - один агент, 6. ПРИМЕЧАНИЕ. Агент НИКОГДА не может набирать кого-либо, равного или более высокого, чем ихсобственный уровень.
Таблица 2 - Комиссии
Level | Item 1 | Item 2 | Item 3
-----------------------------------------------------
4 | .5 | .4 | .3
3 | .45 | .35 | .25
2 | .4 | .3 | .2
1 | .35 | .25 | .15
В этой таблице указаны проценты комиссий для каждого агента на основе их фактического уровня comm_level (если агент находится на уровне 4, он получит50% на каждый проданный предмет 1, 40% на каждый предмет 2, 30% на каждый предмет 3 и т. Д.
Таблица 3 - Проданные предметы
ID | Item
---------------------
4 | item_1
4 | item_2
1 | item_1
2 | item_3
6 | item_2
1 | item_3
Эта таблица объединяет действительныеТовар продан продавцу, который продал товар.
При создании отчета о комиссии рассчитать отдельные значения очень просто. Однако рассчитать комиссию на основе их суб_продавцов очень сложно.
В этом примере, Продавец с идентификатором 1 получает часть каждого проданного товара. Процент комиссии указывает на индивидуальные продажи или размер их комиссии.
Например:
Когда продавец с идентификатором 6 продал один из пунктов item_2 выше, дерево комиссионных будет выглядеть следующим образом:
-ID 6 - 25% от стоимости (item_1)
-ID 3 - 5% стоимости (item_1) - (30% его комм. - 25% комм. продавца id 6)
-ID 1 - 10% стоимости (item_1) - (40% его комм. - 30% отИдентификатор продавца 3)
Это должно быть рассчитано для каждого агента в системе сверху вниз (следовательно, БД вызывает внутри while, повторяя весь мой огромный сценарий).
У кого-нибудь есть хорошее предложение или образцы, которые он, возможно, использовал в прошлом?
РЕДАКТИРОВАТЬ В СТРУКТУРУ КОМИССИИ
Примечание: комиссии в этом примере являются остаточными, то есть если продавецНачиная с 1 месяца, он / она будет получать такую же комиссию для этого клиента, пока он не перестанет быть подписчиком.