Hej,
Mam problem związany z relacją pomiędzy JTree a bazą danych w MySQL. Problem wygląda następująco:
-
Po wypełnieniu pól jakiegoś powiedzmy formularzu klikam "save" i recordy z pól zapisują się na odpowiednich miejscach w bazie danych (niech to będzie "FirstName" i "LastName").
-
Prócz tego na stronie lub w aplikacji mam menu na bazie JTree, które wyświetla informacje zawarte w bazie danych. Docelowo wygląda to tak (recordami zapisywanymi w bazie są tylko liście drzewa [imię i nazwisko]):
-
I teraz na czym polega mój problem - na obrazie widać rekordy w nodach A, B i C. Powiedzmy, że w formularzu dodaję osobę o nazwisku zaczynającym się na "D" i po jej zapisaniu w bazie robi się repaint drzewa, w którego czasie jest dodawany nowy nod o nazwie "D", w którym już znajduje się record tej nowo dodanej osoby, powiedzmy George Daniels.
-
Następnie, gdy będę chciał dodać kolejną osobę z nazwiskiem na "D", to zostanie przyporządkowana do noda "D" bez konieczności jego powtórnego tworzenia.
Jak mógłbym ugryźć ten problem?
Pozdrawiam ciepło!
EDIT
Na chwilę obecną wymyśliłem coś takiego:
- Pobieram recordy z bazy i sortuję je alfabetycznie według kolumny LastName (nazwisko).
- Tworzę nody ściągając powiedzmy ze stosu po kolei nazwiska i biorąc pod uwagę pierwszy znak na jaki się zaczynają.
- Jeżeli nod o danej nazwie już istnieje (np. "A"), to sprawdzam następne nazwisko itd. do przelecenia przez wszystkie nazwiska.
- Po utworzeniu nodów z literkami alfabetu, zaczynam dodawać do konkretnych nodów recordy z bazy danych.
PS boję się tylko, że przy sporej bazie danych np. 1000 albo i więcej pacjentów nie będzie to doskonałe rozwiązanie.
Proszę więc o pomoc raz jeszcze :D
Pozdrawiam!