Hiyerarşik Komisyonları hesaplamak için bildirimde hazırlanan MySQL ile yukarı enine nasıl

0 Cevap php

Update ** :

Ben daha genel ihtiyacını karşılamak için soru başlığı değiştirdi. (Komisyon ürüne göre değişir, çünkü bir case ifadesi hesaplanır) Ben şu anda benim satıcı kimlikleri, kendi ebeveyn kimliği, onların komisyon düzeyi, sattık ürünler ve bu ürünler için toplam komisyon toplamı ile tek bir tablo var; ama ben çalıştırmak devam mesele şu:

Ben o zaman benim sorgu sonuçlarını enine ve her satıcının kendi altınızdaki satıcıları (onlar aşağıda komisyon seviyelerde gemide getirdi satıcıları) bir sonucu olarak alması gereken alt komisyon hesaplamak mümkün duyuyorum.




Original Post:

Şu anda "çalışır" ama kod neredeyse 3600 satır ve tek bir komut dosyası içinde de üzerinde 50 veritabanı çağrıları yapan bir komut dosyası var. Benim deneyim, gerçekten "loop" komut ve veritabanına her çağrı önce sevk kimlikleri dayalı olanları bir alt sorgu çünkü bunu en aza indirmek yolu yoktur.

Belki ben başarmak için çalışıyorum ne çok basit bir örnek vermek ve herkes benzer bir şey ile deneyime sahip olmadığını görebilirsiniz.

Benim örnekte, üç tablo vardır:

Table 1 - Sellers

ID       |   Comm_level   |   Parent
-----------------------------------
1        |        4       |   NULL
2        |        3       |   1
3        |        2       |   1
4        |        2       |   2
5        |        2       |   2
6        |        1       |   3

Where ID is the id of one of our sales agents, comm_level will determine what his commission percentage is for each product he sells, parent indicates the ID for whom recruited that particular agent. In the example above, 1 is the top agent, he recruited two agents, 2 and 3. 2 recruited two agents, 4 and 5. 3 recruited one agent, 6. NOTE: An agent can NEVER recruit anybody equal to or higher than their own level.

Table 2 - Commissions

Level    |    Item 1    |     Item 2     |    Item 3
-----------------------------------------------------
4        |      .5      |       .4       |      .3    
3        |      .45     |       .35      |      .25    
2        |      .4      |       .3       |      .2    
1        |      .35     |       .25      |      .15 

Bu tablo bir ajan bir 4 seviyesinde ise, o her madde 3, her madde 2, 1 satılan her madde üzerinde 30% 40% 50% alacak ve (onların gerçek comm_level dayanarak her ajan için komisyon yüzdelerini ortaya koyuyor vb.

Table 3 - Items Sold

      ID     |      Item
   ---------------------
       4     |     item_1
       4     |     item_2
       1     |     item_1
       2     |     item_3
       6     |     item_2
       1     |     item_3

Bu tablo çiftleri asıl öğe öğeyi satılan satıcı ile sattı.

Komisyon raporunu oluştururken, bireysel değerlerinin hesaplanması çok basittir. Onların sub_sellers dayanarak komisyon hesaplanıyor ancak çok zordur.

Bu örnekte, Satıcı ID 1 satılan her madde bir parça alır. Komisyon yüzdeleri bireysel satış veya kendi komisyon yüksekliğini gösterir.

Örneğin:

Satıcı kimliği 6. Yukarıdaki item_2 birini satınca, komisyonlar için ağaç aşağıdaki gibi görünecektir:

-ID 6 - maliyetinin% 25 (item_1)

Kimliği 3 - maliyetinin% 5 (item_1) - (30% onun telsizi - satıcı id 6% 25 comm)

-ID 1 - maliyetinin% 10 (item_1) - (40% onun telsizi - 30 satıcı id 3%)

Bu yukarıdan aşağı sistemde her ajan için hesaplanması gerekir (dolayısıyla DB iken benim büyük betik boyunca döngüler içinde çağırır).

Herkes onlar geçmişte kullanmış olabilir iyi bir öneri ya da örnekleri var mı?

EDIT TO COMMISSION STRUCTURE

Not: artık bir abone olana kadar bu örnekte komisyon bir satıcı ayda 1 müşteri onboards eğer yani, kalıntı vardır, o / o müşteri için aynı komisyon alırsınız.

0 Cevap