Budowa struktury drzewa za pomoca tablicy

0

Witam!

Pobieram dane z bazy danych gdzie mam strukture drzewa:

Level 1 -> Level 2 -> Level 3 -> Level 4

Czy ktos kiedys tworzyl cos podobnego. W moim przypadku bedzie od 2 do 4 poziomow.

Problem jaki ja widze to np jak musze dodac level 4. To musze wyszukac najpierw level 1, level 2, level 3. Dosc duzo if'ow.
Musi byc jakis czytelniejszy sposob.

1

Możesz to zrobić na wiele sposobów. Proponuję jednak 2 najłatwiejsze:

  1. Tworzysz tabelę z polami:
  • idReordu,
  • idRekorduRodzcica
  • wartość rekordu.

W tej opcji nie masz ograniczenia głębokości drzewa. Bardzo łatwo przepinać całe gałęzie.
Trudniej wyszukiwać po całych poddrzewach.

  1. Tworzysz tabelę z polami:
  • idRekordu,
  • poziom1,
  • poziom2,
  • poziom3,
  • poziom4,
  • wartość rekordu.

W tej opcji łatwo przeszukiwać całe poddrzewa ale aby przepiąć całą gałąź trzeba aktualizować duże ilości rekordów. Mamy tutaj też trochę nadmiarowych danych a i sama struktura ma ograniczoną głębokość.

0

Tak, tylko jak kazda z 4 galezi moze miec nawet po 10 czy 50 elementow. Wiec sporo wyszukiwan oraz porownan przy budowie (dodwaniu galezi/elementow) takiego drzewa. If'o branie :D

1

Możesz zrobić sobie wersję 1 jak napisał Katakrowa tylko robisz sobie dodatkową kolumnę na przyporządkowanie. I wtedy masz bardzo wygodne w korzystaniu i rozbudowie ewentualnej.
EDIT:
Oj, źle się wyraziłem. Do wersji 1 dodajesz kolumnę opisującą poziom zagnieżdżenia po prostu dodatkowo.

0

Proponuję do drzewek używać jakieś paczki do nested set dla laravel jest np. https://packagist.org/packages/kalnoy/nestedset.

1 użytkowników online, w tym zalogowanych: 0, gości: 1