Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 10:25:00 - Benny Jonsson, i forum databaser, Tråden har 10 Kommentarer och lästs av 1124 personer

Jag skall spara ner en trädstruktur i databastabell. Eftersom djup är okänt och noder av olika typ har jag tänkt mig att spara ner dem på något som liknar följande sätt
<code>
tblTreeRoot(id,nvcTreeName)
tblTree(id,idParent,nvcName,intTyp,intPrio)
</code>
I tabellen tblTree kan jag ju spara ner flera träd. Problem blir att med en rekursiv SQL-fråga (antagligen inte så effektivt :( ) hämta ut ett specifikt träd (sorterat på ett fördelaktigt sätt för att skapa trädet)

Exempel på hur ett träd kan se ut i tblTree
<code>
1, 1, root,1,1
2, 1, subNode1_1, 2,1
3, 1, subNode1_2, 2,2
4, 1, subNode1_3, 2,3
5, 3, subNode1_2_1,4,1
</code>

Jag har funderat en del på att skapa en trigger som lägger till i en tredje tabell (vid insättning av noder) vilket träd varje nod tillhör så att jag vid select kan göra en "WHERE tblTree.id IN (SELECT ID from tblNodeInTree Where ...)

Jag undrar fall någon har erfarenhet av något liknande och kan ge lite tipps.


Svara

Sv: Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 10:39:30 - Benny Jonsson

Hmm... lösningen kanske finns här :)
http://www.sqlteam.com/item.asp?ItemID=8866
eller här
http://www.dbazine.com/oracle/or-articles/tropashko4


Svara

Sv:Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 10:52:11 - Benny Jonsson

Ser ut som jag har valt fel databas. I Oracle finns "CONNECT BY" men SQLServer verkar inte ha något snyggt sätt att lösa det på :(


Svara

Sv: Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 10:59:08 - Benny Jonsson

Ojj vad roligt man kan ha med att svara på sina egna trådar.....
men här ser det ut att finnas ett sätt att lösa mitt problem :)
http://vyaskn.tripod.com/hierarchies_in_sql_server_databases.htm


Svara

Sv: Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 11:48:24 - Per Persson

Är trädet binärt (varje nod har två barnnoder)?


Svara

Sv:Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 13:28:43 - Benny Jonsson

Nej varje nod har 0..n barn.


Svara

Sv: Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 13:36:52 - Benny Jonsson

Det bästa jag kommit på ännu är att lägga till ett extrafält för vilket träd noden tillhör och sortera efter idParent och sköta resten i C# applikationen.
<code>
tblTreeRoot(id,nvcTreeName)
tblTree(id,idParent,idTree, nvcName,intTyp,intPrio)
</code>
och då kommer tblTree datan att se ut
<code>
1, 1, 1, root,1,1
2, 1, 1, subNode1_1, 2,1
3, 1, 1, subNode1_2, 2,2
4, 1, 1, subNode1_3, 2,3
5, 3, 1, subNode1_2_1,4,1
</code>


Svara

Sv: Spara ner en trädstruktur i tabeller.

Postades av 2005-09-01 14:17:04 - Per Persson

Om nya noder inte stoppas in så ofta, kanske Modified Preorder Tree Traversal kan vara något?
http://www.sitepoint.com/article/hierarchical-data-database/2


Svara

Sv:Spara ner en trädstruktur i tabeller.

Postades av 2005-09-05 16:48:05 - Benny Jonsson

En nakdel här är visserligen att man inte kan försäkra sig om att man får ut nodens förälder innnan själva child-noden :(


Svara

Sv: Spara ner en trädstruktur i tabeller.

Postades av 2005-09-12 09:25:36 - Benny Jonsson

Min nuvara lösning är att jag läser in datan i C# och sorterar upp noderna med hjälp av en hashtabell.


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 889
27 965
271 778
921
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies