Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248

    Chiave Esterna In Pratica

    Ciao, sto studiando i database relazionali e mi trovo con un grosso punto interrogativo.
    Ho letto un po' di post riguardo alle chiavi esterne ma in pratica non ho capito l'utilizzo.
    Cioè mettiamo il caso di 2 tabelle AUTORI e LIBRI:
    codice:
    CREATE TABLE autori 
    id_autore int(255) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    nome varchar(255) NOT NULL,
    cognome varchar(255) NOT NULL,
    La tabella autori contiene la chiave primaria id_autore univoca e i campi nome e cognome e fin qui ci sono

    codice:
    CREATE TABLE libri 
    id_libro int(255) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    titolo varchar(255) NOT NULL,
    editore varchar(255) NOT NULL,
    id_autore int(255) NOT NULL,
    FOREIGN KEY (`id_autore`) REFERENCES `autori` (`id_autore`)
    e a livello logico in una relazione 1 a molti (1 autore molti libri) lo capisco.
    La cosa che non mi è chiara e che ad esempio pratico in un inserimento di nuovo libro io dovrei essere a conoscenza dell' id_autore già presente in 'autori' altrimenti non ci potrebbe essere la relazione tra le 2 tabelle, giusto???
    Utilizzo da poco mysql con php e onestamente è la prima volta che mi trovo di fronte alle relazioni tra tabelle e non riesco a comprendere in pratica (come ad esmepio con il comando INSERT) come usarle
    Vi chiedo una mano perchè tra 15gg ho un bando di concorso e riguardo a questo argomento sono bloccato.
    Grazie, Ale.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    Hai capito benissimo.
    Nell'esempio che hai fatto tu occorre inserire prima l'Autore (la tupla che sta dalla parte 1 della relazione 1-N) poi il Libro (la tupla che sta dalla parte N della relazione 1-N)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248
    Grazie mille ok, quindi se volessi inserire un nuovo libro nel caso di autore già esistente faccio un controllo sulla tabella 'autori' e se è presente (parlo caso di utilizzo php) visualizzo solo il form di inserimento di un nuovo libro e la id_autore la prelevo dalla prima query di controllo che ho fatto per vedere se già esisteva e poi inserisco i dati nella tabella 'libri', altrimenti mettiamo caso visualizzo un form con sia i dati dell'autore che del libro e isnerisco rispettivamente in 'autori' e 'libri'.
    Ti vorrei chiedere un'ulteriore cosa, ho letto che la relazione 1 a molti è la più utilizzata mentre quella molti a molti solitamente passa attraverso una tabella intermedia che solitamente contiene solo le relazioni (gli id_autore e id_libro per intenderci) mi dai confrema su questo?

  4. #4
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Originariamente inviato da joint77
    ...ho letto che la relazione 1 a molti è la più utilizzata mentre quella molti a molti solitamente passa attraverso una tabella intermedia che solitamente contiene solo le relazioni (gli id_autore e id_libro per intenderci) mi dai confrema su questo?
    Ciao, la relazione fra due tabelle non viene scelata a caso in base ai propri gusti, ma dipende esclusivamente dal tipo di relazione che c'è fra i due oggetti...
    Nel tuo esempio, un autore puo avere molti libri, ma più autori possono avere lo stesso libro? Direi proprio di no, pertanto l'unica relazione possibile è uno a molti..

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    363
    Dal punto di vista della normalizzazione del database è spesso la soluzione migliore.

    http://www.tomjewett.com/dbdesign/db...e=manymany.php

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248
    @alpynet: si questo l'avevo capito solo che mi sembra che sia il più utilizzato nelle applicazioni, poi ciò non toglie che potrebbero esserci anche 2 tabelle con relazione 1 a 1 (anche se credo si potrebbe riepilogare una relazione così in un'unica tabella). Almeno credo
    @Squid70: Ok grazie ancora

  7. #7
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Piu autori possono essere associati allo stesso libro nel caso di libri scritti da piu di un autore.

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