Updateowanie całego drzewa vs. wybranych fragmentów

0

Hej, mam duże rozwijalne drzewo gdzie mogę sobie przenosić elementy z podrzewa do innego podrzewa, zmieniać im nazwy, dodawać, usuwać itp. W chwili obecnej nadpisuje baze danych przy kazdej operacji, tzn. np. jak dodaje element do drzewa to od razu zapisuje go w bazie danych. Zastanawiam sie czy jest to OK czy moze lepiej byloby nie updateowac bazy przy kazdej operacji tylko jakos stackowac zmiany i na koncu zapisac. To pozwoliloby mi na dodanie przycisku "Zapisz" dzieki czemu jak ktos sie rozmysli z wprowadzonym zmian to wystarczy ze nie zapisze. Jak to sie ogolnie poprawnie rozwiazuje?

0

To zależy od trzech rzeczy:

  1. Jednolitość interfejsu
    Jeżeli większość formularzy nadpisuję się automatycznie - nie zmieniajmy tego, bo co nauczymy użytkownika to ciężko oduczyć. Jeżeli w większości przypadków jest zapisz - niech będzie zapisz. Pracuję obecnie na takim programie do budowania procesów biznesowych, który ma to zamiennie - i to jest tragedia, bo zawsze muszę sprawdzić, czy czasem nie ma przycisku zapisz, bo jak nie sprawdzę to w 50% nie zapisuję. Są w miejsca, w których czasami są dwa przyciski zapisz, pomimo że jeden by wystarczył. Niejednolitość jest masakrą umysłową, dla automatycznych odruchów.
  2. Wydajność serwera
    Jeżeli Pana serwer jest wystarczająco wydajny, to przy kilkuset pozycjach nic to nie zmieni. Natomiast jeżeli to drzewo miałoby być aktualizowane dla wszystkich użytkowników ( w przyszłości / na bieżąco ), to mamy odpytania do bazy w trakcie korzystania z formularza co kilka sekund - więc z góry odradzam takie zastosowanie, nawet dla małych tabel - bo nigdy nie wiemy, czy tabela w przyszłości nie spuchnie. Chyba, że korzysta Pan z MongoDB lub ElasticSearch to ten punkt o wydajności proszę potraktować jako luźny żart.
  3. Najprostsze rozwiązania są najlepsze
    Tak jak Pan napisał, dopóty nie naciśnie użytkownik zapisz - oznacza to, że nie jest zdecydowany. Automatyczna aktualizacja może doprowadzać do tego, że użytkownik z lenistwa nie będzie poprawiał starych źle wpisanych gałęzi ( co będzie również wymagało wykonania mechanizmu w locie ). Natomiast jeśli nie zapisał to albo mu nie zależy, albo się pomylił, albo ma sklerozę. Tutaj zawsze można zgonić na użytkownika.

Ciekaw jestem również opinii innych osób. Być może się nie zgodzą, a być może mają podobne doświadczenie. Pozdrawiam.

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