MySQL: chiavi esterne e vincoli di integrità tabelle

Cosa è una chiave esterna

Una chiave esterna è un vincolo tra una o più tabelle che garantisce l'integrità dei dati. È composta da una o più colonne in una tabella, chiamata tabella referenziante, che si riferisce a una colonna, o un insieme di colonne, in una tabella referenziata.
Una tabella può avere molte chiavi esterne e ogni chiave esterna può referenziare una tabella diversa.
Nella progettazione di un database è buona norma creare tabelle diverse per entità diverse e relazionarle tra di loro attraverso le chiavi esterne.
Un esempio può essere rappresentato dai prodotti che sono catalogati in specifiche categorie: questa relazione può essere rappresentata nel database con l'immagine seguente:

Relazione 1-N: la tabella Prodotti usa IDCategoriaProdotto collegato alla tabella CategorieProdotti.

Come creare una chiave esterna

Per definire le chiavi esterne e i vincoli di integrità referenziale di una tabella, in caso di tabelle InnoDBaccedi al pannello di gestione del database MySQL e segui le operazioni riportate: 

  1. scegli il database in cui si trova la tabella su cui si desidera intervenire, tra i 5 disponibili nell'elenco in alto a sinistra;
  2. nella pagina che si apre, vai sulla voce Struttura in corrispondenza della tabella di interesse:
phpMyAdmin: 1 seleziona database; 2 apri Struttura della tabella “TabellaProva” dalla colonna Azione.
  1. vai poi sul link Vista relazioni:
phpMyAdmin: struttura tabella; apri Vista relazioni per definire collegamenti/chiavi esterne.
  1. nella sezione visualizzata puoi stabilire collegamenti esterni per i campi della tabella per cui sono stati costruiti indici;

Non puoi creare chiavi esterne tra tabelle che hanno motori diversi, ad esempio MyISAM e INNODB. Consulta la guida per verificare e modificare il motore di una tabella.

  1. vai infine su Salva per confermare.

Aiutaci a migliorare