Avatar billede speedpete Nybegynder
31. januar 2010 - 12:44 Der er 6 kommentarer og
1 løsning

implementere træ i xml eller dbms

Jeg vil lave et simpelt trådet diskussionsforum, og har altså brug for en træstruktur. Har så googlet lidt på, om jeg skal lave det i xml (hvilket virker nemmest), eller som en/flere tabeller i SQL (virker mere indviklet, men jeg har i forvejen gang i en MySQL).

Nogen forslag? Selve implementationen i databasen er jo enkel nok: En selvrefererende tabel 'indlæg' (et indlæg kan have mange indlæg som børn, et indlæg kan have et indlæg som forældre). Men det virker ret indviklet at manipulere data i denne struktur.

Hvis jeg derimod laver det i xml, så har jeg strukturen lige til at databinde op på et treeview (.net).
Avatar billede arne_v Ekspert
31. januar 2010 - 15:55 #1
Readonly data => XML is fine

Data som skal opdateres => XML bliver et helvede
Avatar billede speedpete Nybegynder
31. januar 2010 - 16:40 #2
Ok, jeg kan også bedst lide SQL-ideen.

Kender du så den bedste måde at implementere det, jeg beskrev ovenfor; eller rettere - hvordan hiver man via SQL et udtræk ud af denne strukur og viser den som en træstruktur? Er det ikke nemmest at hive hele tabellen op i memory som en DataTable, og så arbejde med den (bliver det for sløvt ved store datamængder)? Eller bør man lave en sidetabel, som holder styr på hver nodes path, eller noget lignende? Det er som sagt til at lave et messageboard.
Avatar billede arne_v Ekspert
31. januar 2010 - 17:03 #3
Det er lidt tricky at traversere træ strukturer - specielt i SQL dialekter som ikke har nogle features som understøtter det - og det har MySQL ikke.

Så det er nok en god ting at læse op i memeory. Jeg ville nok en custom data struktur fremfor datatable. Datatable er meget "rektangulær".
Avatar billede speedpete Nybegynder
31. januar 2010 - 17:20 #4
Hvordan, en "Custom data struktur"?

Iøvrigt ser tabellen i hovedtræk sådan ud:
CREATE TABLE `indlaeg` (
  `idIndlaeg` INT(11) NOT NULL AUTO_INCREMENT ,
  `Tekst` TEXT ,
  `parent` INT(11) NULL ,
  PRIMARY KEY (`idIndlaeg`)
Avatar billede arne_v Ekspert
31. januar 2010 - 17:31 #5
List<List<Indlaeg>> maaske.

List<List<Indlaeg>> alleindlaeg;
...
String text = allindlaeg[traadnr][indlaegnr].Text;
Avatar billede speedpete Nybegynder
31. januar 2010 - 17:53 #6
Ja, det vil jeg kigge på. Smid et svar.
Avatar billede arne_v Ekspert
31. januar 2010 - 18:50 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester