Pracuję nad projektem Rails, który modeluje strukturę firmy ze schematem binarnego schematu macierzy. Każdy nowy użytkownik „wprowadzony” w hierarchii jak pokazano poniżej:Implementacja struktury firmy Forced Binary Matrix w Railsach
Nie ma bilansowania i wszystkie poziomy muszą być wypełnione przed przejściem do następnego. Tylko kolejność wstawiania ma znaczenie przy wstawianiu nowych. Nasz system baz danych to Postgres.
Zamierzałem użyć jakiegoś klejnotu, aby pomóc mi w implementacji drzewa (Closure Tree jest stanowczym kandydatem), ale nie jestem pewien, jak podejść do ograniczeń (wstawiania, usuwania) tego "wymuszonego drzewa binarnego od lewej" do prawego "modelu.
Próbuję to wszystko zrozumieć, ale ponieważ nigdy nie brałem udziału w takich implementacjach (szczególnie w przypadku baz danych) myślałem, że mogę skorzystać z pomocy doświadczonych programistów na temat typowych pułapek lub gdzie powinienem umieścić specjalne Uwaga. Oczekuje się, że baza użytkowników wzrośnie dość szybko, więc martwię się o wydajność.
więc moje pytania:
- Ponieważ utknąłem na relacyjnej bazie danych, co byłoby najlepszym sposobem Model ten schemat?
- Czy jest jakaś dokumentacja lub klejnot, w który mogę się zagłębić, aby nauczyć się najlepszego sposobu implementacji wszystkich algorytmów, których będę potrzebować?
Z góry dziękuję za wskazówki/wskazówki.
Jakie operacje należy wykonać na tej strukturze? – freemanoid
Co pociąga za sobą usunięcie? Zakładam, że usunięcie ze środka drzewa nie powinno usuwać wszystkich zstępujących pracowników, więc czy ten poziom przesunięcia drzewa pozostanie do wypełnienia, czy też podnosisz dziecko do pustego miejsca? Obie te operacje będą wyglądały jak ponowne zrównoważenie, które według ciebie nie są potrzebne. –