Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Baza do systemu MLM
Forum PHP.pl > Forum > Bazy danych > MySQL
ze4lot
Witam,

Stoję przed zadaniem napisania aplikacji do obsługi firmy MLM i jej partnerów.
Zasada jest prosta jak piramida finansowa 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!
hind
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
Crozin
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.
ze4lot
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 biggrin.gif

erix
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. [;
ze4lot
@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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.