Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Insert e Update db: relazione 1 a molti

    Ciao a tutti,

    ho una pagina che permette di caricare un TESTO nel db.
    Fin qui tutto ok.


    codice:
     tabella TESTO
    id_testo  |  testo
    -----------------------
    1           |  ciao...
    2           |  buongiorno...
    Ogni testo può appartenere a più CATEGORIE(es: "poesia", "racconto", "fiaba", etc.)


    codice:
     tabella CATEGORIE
    id_categoria  |  categoria
    -----------------------
    1           |  poesia
    2           |  racconto
    3           |  fiaba

    Ho una tabella che relaziona i TESTI con le CATEGORIE:
    codice:
     tabella TESTO_CATEGORIE
    id_testo  |  id_categoria
    -----------------------
    1           |  2
    1           |  3
    2           |  1

    In fase di OUTPUT non ho problemi, faccio una Join, ma come posso gestire al meglio l'INSERT nel database?

    Ho pensato di creare nel Form di inserimento una fila di checkbox, in modo che l'utente possa indicare a quali categorie apartenga il testo inserito...

    Ma poi come posso gestire l'insert/update sulla tabella TESTO_CATEGORIE ?

    Grazie
    1,2,3,4,5,10,100 passi!

  2. #2
    In quel campo fai in modo che ti venga fuori qualcosa come:

    3-6-9-14

    che rappresentano le categorie di cui fa parte il testo

  3. #3
    Originariamente inviato da Samleo
    In quel campo fai in modo che ti venga fuori qualcosa come:

    3-6-9-14

    che rappresentano le categorie di cui fa parte il testo
    Innanzitutto grazie per la risposta.

    Intendi dire di mettere nella tabella relazionale TESTO_CATEGORIE, in un solo campo tutta la sequenza di categorie?

    Ad es:
    codice:
     tabella TESTO_CATEGORIE
    id_testo  |  id_categoria
    -----------------------
    1           |  2-3
    2           |  1-2-5
    Se ho capito cosa intenti, mi sembra una soluzione poco pulita... (così tanto varrebbe mettere una colonna in più nella tabella TESTO..)


    DITEMI SE SBGAGLIO:
    A livello logico, magari sbaglio, penso che dovrei caricare in un array e tutte le associazioni TESTO e CATEGORIE e poi spararlo in una Query per valorizzare la tabella TESTO_CATEGORIE


    Grazie
    1,2,3,4,5,10,100 passi!

  4. #4
    up!


    1,2,3,4,5,10,100 passi!

  5. #5
    questa relazione e' molti a molti (un testo puo' avere si molte categorie, ma molte categorie possono avere molti testi) quasi impossibile poi da gestire. Da evitare poi valori non atomici nello stesso campo.

    fai una tabella testi, una categorie ed una di unione dove ogni record rappresenta l'associazione di:

    id_record - id_testo - id_categoria

    con un form con checkbox non farai altro che scorrere la lista ed inserire l'associazione record per record. In pratica: inserisci il testo, prelevi l'id assegnato e associ tutto in nuovo record di unione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Originariamente inviato da piero.mac
    (...)
    id_record - id_testo - id_categoria

    con un form con checkbox non farai altro che scorrere la lista ed inserire l'associazione record per record. In pratica: inserisci il testo, prelevi l'id assegnato e associ tutto in nuovo record di unione.
    Ciao Piero,
    quindi i passaggi sono distintamente due, giusto ?

    Per curiosità: non riesco in definitiva a fare un'unica query dal momento che mi manca l'id (auto-increment) che nella tabella delle associazioni mi associ riga-per-riga l'articolo con ogni singola categoria.. ?


    Stefano

  7. #7
    Non ho capito bene qual e' il problema: quando inserisci un testo (diciamo codice 5) che appartiene a n categorie (diciamo tre categorie, codice 4 8 e 13) nella tabella TESTO_CATEGORIE fai una insert multipla tipo

    codice:
    INSERT INTO TESTO_CATEGORIE (id_testo, id_categorie) VALUES (5, 4),(5, 8),(5, 13)
    considera che come chiave puoi usare entrambe le colonne, perche' nessuna delle due singolarmente e' unica, ma la coppia lo e'.

  8. #8
    @k.b.
    certo, su questo sono d'accordo.
    ma tu dai per scontato che io sappia a priori l'id dell'articolo che sto andando ad inserire nella tabella testo.
    Finchè non l'ho inserito come faccio a saperlo ?

    questo era il mio quesito.

    In pratica quindi il mio script dovrebbe fare questo:

    1. Inserisco nella tabella testo l'articolo--> registraz nel db dell'articolo e generazione dell'id univoco
    2. il sistema recupera al volo l'ultimo id generato dall'operazione 1.
    3. nella tabella testo_categorie creo tante righe quante sono le categorie.
    4. finito

    è ok ?

  9. #9
    Scusa, non avevo capito bene il problema. Si come dici nell'ultimo messaggio e' ok.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.