Corsi on-line

Gestione ottimale delle chiavi in tabella

Un campo chiave permette di effettuare una ricerca nella tabella di un database sulla base di un valore grazie al quale effettuare dei confronti. Ciò non vuol dire che una tabella ricca di chiavi sia necessariamente una buona tabella, si analizzi per esempo la seguente istruzione SQL relativa ad un ipotetico Blog in cui si vuole creare una relazione tra Post e Tag:

CREATE TABLE tag (
id int UNSIGNED NOT NULL AUTO_INCREMENT,
id_post int UNSIGNED NOT NULL,
id_tag int UNSIGNED NOT NULL,
PRIMARY KEY(id),
UNIQUE INDEX(id_post, id_tag)
);


L’introduzione nella tabella di una chiave primaria (id) potrebbe sembrare in un primo momento una buona scelta, ma in un secondo momento diventa evidente come una struttura del genere ponga indubbi problemi di ridondanza.
Si riproponga invece il codice precedente in questo modo:

CREATE TABLE tag (
id_post int UNSIGNED NOT NULL,
id_tag int UNSIGNED NOT NULL,
PRIMARY KEY(id_post, id_tag)
);

In questo modo, utilizzando i due identificatori come chiavi primarie, sarà possibile evitare l’inserimento di un campo di relazione e limitare eventuali problemi di ridondanza dei dati.

Post correlati
I più letti del mese
Tematiche