Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Hierarchical Tree

Îåêßíçóå áðü ôï ìÝëïò pan. Τελευταία δημοσίευση από το μέλος pan στις 29-10-2007, 15:41. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  29-10-2007, 15:41 36756

    Hierarchical Tree

    Γεια χαρά

    Ποιός είναι ο καλύτερος τρόπος για να εμφανίσουμε ένα leftmenu που έρχεται από βάση? Παλιότερα με χρήση classic ASP 3.0, δημιουργούσαμε
    recordset μέσα se recordset και εμφανίζαμε τα παιδιά της κάθε κατηγορίας. Όμως η αυτό είχε σαν αποτέλεσμα να κάνουμε πολλαπλά select
    για κάθε παιδί, ώστε να φέρουμε τα παιδιά του παιδιού..
    δηλ έχουμε τον πίνακα "keimena" όπου :
    (
      keimena_id int primary key,
      keimena_title nvarchar(100),
      keimena_parent int not null
      keimena_showleftmenu bit
      )
        
      Έχουν αλλάξει καθόλου με τώρα τα πράγματα? Δυστυχώς χρησιμοποιώ ακόμη sql server 2000 και όχι την 2005 ώστε να κάνω χρήση του self referenced table.
      Υπάρχει τίποτα τέτοιο σε 2000 ?
     
      Για να αποφύγω τα πολλά select έχω σκεφτεί 2 τρόπους. Δεν γνωρίζω αν είναι καλοί από θέμα performance.
     
      Αν υποθέσουμε ότι το path των selected άρθρων είναι : 2 > 28 > 29 > 318 > 324. Τότε :
      a) Φέρνω σε έναν dataTable όσα εμφανίζονται στο leftmenu=1. Loop-άρω όλες τις εγγραφές μία μία και για κάθε id που βρίσκω ξανα-καλώ
      με ένα filter και φέρνω τα data όπου το (keimena_parent =  reader["keimena_id"]). Αλλά αυτό μου δημιουργεί αρκετούς dataTable.
     
      b) έχω φέρει σε 5 arrays όλα τα ids με ένα SELECT. δηλ. όλα όσα έχουν keimena_parent=2, όλα όσα έχουν keimena_parent=28,
      όλα όσα έχουν keimena_parent=29, όλα όσα έχουν keimena_parent=318
      άρα έχω :
     
      int[] arrayNavigation = {2, 28, 29, 318, 324}
     
      int[] array1 = {3, 4, 5, 6, 28}   ......................... όσα έχουν keimena_parent=2
      int[] array2 = {29, 30, 31, 32, 33, 34}.................όσα έχουν keimena_parent=28
      int[] array3 = {310, 311, 312, 313, 318, 319}.......όσα έχουν keimena_parent=29
      int[] array4 = {324, 325, 326}.............................όσα έχουν keimena_parent=318
      
      Μπορώ κάπως να φτιάξω το δέντρο ώστε μετά να διαβάσω τα IDs με την σειρά ?
      δηλ το αποτέλεσμα να είναι της μορφής :

    |1 
    |2
    ----> 
    |10 |3
    |11 |4
    |12 |5
     |6
     |28
     |--->29
      |---->|310
      |---->|311
      |---->|312
      |---->|313
      |30
      |31
      |32
      |33
      |34
      

    Αν υπάρχει κάποιος άλλος τρόπος, πάντα ευπρόσδεκτος.  
    Ευχαριστώ.   
      
     
     
     
     
      
     
     


     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems