Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Chiaro, il problema di questa soluzione è che non si potrebbe inserire nel corso del tempo nuove sezioni:

    -- se si inserisse una nuova sezione in mezzo alla tabella, si determinerebbe lo scalare di tutti gli "id" delle altre (e.g. se inserissi una nuova Lowsezione 3, allora quella prenderebbe l'id n. 5, mentre le altre dovrebbero scalare di 1); comportando che la colonna "id_sezione" della tabella articoli sarebeb tutta sfalsata.

    -- se la nuova sezione fosse invece inserita in calce alla tabella, allora non si saprebbe più di quale parent è figlia (d'altronde nella soluzione proposta, la parent si riesce a recuperare solo se si ripercorre la tabella in ordine verso l'alto finchè non si trova lo 0).

  2. #12
    mmm sei troppo legato alla "rappresentazione visiva": la struttura che ti ho consigliato serve proprio a darti flessibilità, ecco perché ti ho chiesto due volte se la struttura era rigida o variabile.

    Faccio un esempio, partendo con una struttura semplice

    codice:
    id   parent_id  descrizione
    1    0             Top of the Tops
    2    1              Sottosezione 1
    facile facile

    mettiamo che tu voglia aggiungere una sezione in mezzo

    codice:
    id   parent_id  descrizione
    1    0             Top of the Tops
    2    3             Sottosezione 1
    3    1             Sezione di mezzo
    visto? cambi i riferimenti e fai quello che vuoi


  3. #13
    Scusami, mi sa che non mi sono spiegato. Vediamo se riesco.

    Situazione di partenza: in una parent (parent_id =0), ci sono due child (parent_id =1) e in ognuna di quest'ultime ci sono due child di secondo livello (parent_id=2).
    id parent_id titolo
    1 0 parent
    2 1 child1
    3 2 childchild1-1
    4 2 childchild1-2
    5 1 child2
    6 2 childchild2-1
    7 2 childchild2-2

    Dopo di che, nella tabella articoli, immaginando la presenza di un testo nella sezione childchild-1-1 e uno nella sezione childchild2-1, sarà la seguente:
    id id_sezione testo
    1 3 ciaociao
    2 6 blablabla
    ... ... ...



    Situazione Modificata: Dovendo inserire una nuova childchild1-3 (quindi una child della child1), le si dovrà attribuire come "id" il 5, comportando l'aumentare degli altri, come sotto rappresentato.
    id parent_id titolo
    1 0 parent
    2 1 child1
    3 2 childchild1-1
    4 2 childchild1-2
    5
    2 childchild1-3
    6 1 child2
    7 2 childchild2-1
    8 2 childchild2-2

    In questo modo, i testi che sono nella tabella "articoli" e in particolare il testo blablabla con id=2 che faceva riferimento allla childchild2-1 (e quindi al id_sezione=6) sarà sfalsato, dovendo adesso fare riferimento al id_sezione=7.

    Spero di essere stato più chiaro.

    Grazie mille per l'aiuto e i chiarimenti
    Ultima modifica di andrealuigi; 28-11-2020 a 19:12

  4. #14
    gli ID delle sezioni NON cambiano, cambiano i parent_id, non hai visto il mio esempio?

  5. #15
    sì, l'ho visto, ma mi sfugge qualcosa.

    Nel tuo esempio, dopo la modifica, come si capisce che la sottosezione 1 (con parent_id =3) è una child proprio della "Sezione di mezzo" (con parent_id=1) e non di un'altra child di mezzo (con il medesimo valore di parent)?

    Vedi esempio di seguito

    id, parent_id, descrizione
    1 0 Top of the Tops
    2 1 Sottosezione1
    3 1 Sottosezione2

    che diventa

    id, parent_id, descrizione
    1 0 Top of the Tops
    2 2 Vecchia-sottosezione1
    3 1 Sottosezione2
    4 1 Nuova-Sottosezione1

    In questo caso come si capisce che vecchia-sottosezione 1 (parent_id =2) è una sub-sezione di nuova-sottosezione1 (parent_id =1) e non ad esempio di Sottosezione2(anch'essa con parent_id =1)?



    Ultima modifica di andrealuigi; 28-11-2020 a 20:01

  6. #16
    traduco in disegno il tuo esempio
    CatturaForum.jpg
    così poi puoi cercare l'errore nella tua trascrizione

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.