• User Newbie

    Integrità referenziale?????

    ciao a tutti vorrei avere una spiegazione chiara sull'integrità referenziale e su come applicarla:
    Ho appena completato un sito di un cineforum in cui le recensioni sono catalogate per titolo e genere, in questo momento il tutto è gestito da una tabella Recensioni(recID,titolo,anno,regia,cast,nazione,descrizione,genere,descrizionegenere) ,questo sistema funziona senza problemi solo che nel momento in cui l'utente mi crea una recensione e sbaglia a scrivere un genere(esempio:al posto di animazione mette cartoni animati) va tutto a cozze in quanto la ricerca non unifica i cartoni animati e i film di animazione ma li differenzia rendendo tutto il sistema inefficente. pensavo di dividere le recensioni su 2 tabelle: recensioni(recID,titolo,anno,regia,cast,nazione,descrizione, GenereID) e Generi(GenereID,Descrizione,TitoloGenere) e di collegarle in modo che l'utente debba scegliere il genere da un menu-list. Come cavolo faccio??? in access non ho problemi a fare questo tipo di cose ma in mysql non ci riesco proprio!! non riesco ad associare GenereID come chiave esterna in recensioni in modo da collegare le due tabelle e far apparire i generi nella list-menu. qualcuno mi può aiutare magari scrivendo anche 2 righe di codice sql Grazie a tutti!!!!


  • User Attivo

    Esempio query:

    
    SELECT * FROM recensioni r, generi g WHERE r.GenereID = g.GenereID
    
    

    Chiaro che il codice per farti le listbox di inserimento etc. etc. é tutto da sviluppare.


  • Super User

    scusa, se i generi li hai già inseriti tutti non fai prima a creare una listbox con SELECT DISTINCT ?


  • User Newbie

    ok grazie bastava fare una join probabilmente sbagliavo qualcosa nel codice; rimane un problema se cancello un genere come faccio a fare in modo che anche le recensioni di quel genere vengano eliminate; non esiste un modo senza fare una query ogni volta?? mi sembrava che mysql non supportasse l'integrità referenziale, per ora sto usando il motore myisam mi era parso di capire che per fare in modo che la tabella si aggiorni da sola, in modo da non lasciare dati"orfani", devo usare il motore INNODB; ho provato ma non funziona!!!! Grazie ancora e scusate se rompo!!