Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza do systemu MLM
ze4lot
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 1
Dołączył: 29.03.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,

Stoję przed zadaniem napisania aplikacji do obsługi firmy MLM i jej partnerów.
Zasada jest prosta jak piramida finansowa (IMG:style_emoticons/default/wink.gif)

Ktoś kogoś zaprasza do systemu i wpada do jego struktury. Potem osoby zaproszone zapraszają kolejne i tak się buduje dalsza struktura.
Założenie jest takie, że zaproszenia są tylko bezpośrednie tzn. jak kogoś zapraszam ta osoba wpada bezpośrednio pode mnie.

I tu zwracam się z prośbą o podpowiedź jak najlepiej zaprojektować bazę MySQL do obsługi struktury by wszystko wydajnie działało i jakimi zapytaniami się posługiwać by pobrać całe drzewo partnerów wybranej osoby niezależnie od jego głębokości (może to być nawet tysiąc osób lub więcej dla partnera na szczycie struktury).

Niestety nie mam doświadczenia w budowaniu aż tak rozbudowanych baz i zapytań dla tego postanowiłem poprosić was o Pomoc.
Jeżeli podałem zbyt mało szczegółów chętnie opiszę system dokładniej.

Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
hind
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

Ostrzeżenie: (0%)
-----


Tu masz fajny artykuł o budowie drzew w bazie danych...
http://mikehillyer.com/articles/managing-h...-data-in-mysql/
nested set tree wydaje się być ciekawy i wydajny, choć nigdy nie używałem takiej struktury.

i wpis na wiki
http://en.wikipedia.org/wiki/Nested_set_model
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Najpierw określ jakie operacje będziesz chciał wykonywać na tych danych. Czy wyłącznie wyświetlanie całego/fragmentu drzewa, czy może operacje typu "wyświetl tylko te gałęzie, gdzie zaproszeni zaprosili minimum 2 inne osoby"? W pierwszym przypadku, tak jak polecił to @hind zwykła struktura drzewiasta w pełni wystarczy (nested set to dobry wybór). Jeśli jednak interesowałoby Cię jakiekolwiek przetwarzanie tych danych to zdecydowanie powinieneś zwrócić się w stronę grafowych baz danych, np. neo4j.
Go to the top of the page
+Quote Post
ze4lot
post
Post #4





Grupa: Zarejestrowani
Postów: 54
Pomógł: 1
Dołączył: 29.03.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


http://web.archive.org/web/20110606032941/...hical-data.html

Ja znalazłem takie coś i wydaje mi się, że wszystko zostało pięknie wyjaśnione.

@Crozin - co do operacji nie będą one złożone, raczej chodzi o organizację tylko kto pod kim jest. a to neo4j to potwór (IMG:style_emoticons/default/biggrin.gif)

Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Swego czasu pracowałem przy tego typu bazie.

Może wydaje się trywialne, ale ciężko powiedzieć bez znajomości planu marketingowego danego MLM-u. Problemem jest tu nie tyle, co generowanie drzewa do odczytu, a zapis.

Drzewo drzewem, tylko w niektórych przypadkach trzeba przeskoczyć wszystkie poziomy dla danej gałęzi - od liścia do samego korzenia nieraz porównując "braci" na danym szczeblu.

Rada: pogłówkuj zawczasu, bo potem będzie za późno na migracje. [;
Go to the top of the page
+Quote Post
ze4lot
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 1
Dołączył: 29.03.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@erix - właśnie główkuję i też pozwoliłem się popytać tutaj o wskazówki
Jeśli chodzi o plan marketingowy to bezpośrednie zaproszenia i ew, korzyści dwa poziomy w dół czyli od osób bezpośrednio zaproszonych oraz od zaproszonych przez zaproszonych bezpośrednio.
Ponadto Nested Set Model wydaje mi się najbardziej uniwersalny, najbardziej elastyczny pod względem dalszych modyfikacji oraz dobrze udokumentowany (blogi, arty itp.).

Also - Dziękuję za wasze opinie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:38