Hej w mojej aplikacji React mam dane zagniezdzone dane (nazwijmy to kiazką z rozdziałami) ktore w bazie wygladaja jak nizej (postgresql)

Używam ich w moim komponencie draggable-tree gdzie mogę je sobie swobodnie usuwać, dodawać, zagniezdzac i zmieniać kolejność. Zagniezdzanie odbywa sie poprzez updateowanie parentId. W chwili obecnej sortowanie odbywa sie zgodnie z kolejnoscia w jakiej dane zostaly zaladowane. Mniej wiecej dziala to tak:
- zaladuj cale dane - kazdy element ma dodatkowo relacje do np. komentarzy, opinii, historii edycji (jak zmieniala sie wartosc
contentw czasie) takze jesli drzewo sie rozrosnie to troche tych danych jest ladowane (nie znam sie na bazach wiec nie wiem jak np. pobieranie/zapisywanie 40 artukyłów gdzie kazdy z nich ma 3 strony tekstu + 10 komentarzy moze byc czasochlonne) - stworz drzewko i edytuj je w React (dodaj elementy, przenies itp)
- nowo otrzymane drzewo zapisz do bazy co automatycznie usuwa poprzednie dane
Ogolnie chce moc wykonac 3 operacje:
- dodawanie/usuwanie rozdzialu - tutaj moglbym po prostu zapisac nowy
rozdzialw bazie rozdziałów (lub usunac). To nie ingeruje w pozostale rozdzialy wiec nie ma potrzeby zapisywania reszty - edytowanie obecnych rozdziałów - jak wyzej, wystarczyloby zupdateowac konkretny rozdzial w bazie
- przenoszenie rozdziałów - to jest glowny powod dla ktorego obecnie zapisuje od razu cale drzewo. Alternatywa byloby sortowanie drzewa po
contentId. Czyli jesli mam np.rozdzial 1,rozdzial 2irozdzial 3z id odpowiednio1,2,3, to jesli chcialbym przeniesrozdzial 1do srodka to moglbym ustawic jegocontentIdna srednia z id rozdziałów pomiedzy nim (czyli rozdzialu2i3czyli2.5). Wtedy znowu nie musialbym ingerowac w pozostale rozdzialy.
Czy powyzsze ma sens czy sa lepsze metody?