Hej,

Mam problem związany z relacją pomiędzy JTree a bazą danych w MySQL. Problem wygląda następująco:

  1. 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").

  2. 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]):

JTreeExample.jpg

  1. 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.

  2. 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:

  1. Pobieram recordy z bazy i sortuję je alfabetycznie według kolumny LastName (nazwisko).
  2. Tworzę nody ściągając powiedzmy ze stosu po kolei nazwiska i biorąc pod uwagę pierwszy znak na jaki się zaczynają.
  3. Jeżeli nod o danej nazwie już istnieje (np. "A"), to sprawdzam następne nazwisko itd. do przelecenia przez wszystkie nazwiska.
  4. 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!