Da una guida che ho trovato ho letto che:
in un database relazionale le tabelle sono collegate tra loro tramite relazioni logiche, facendo si che righe di una tabella contengano riferimenti a valori chiave di un'altra tabella.
I principali aspetti dei punti di legame tra la cartella principale amici e quella secondaria votiMatematica2 sono:
- i campi coinvolti nella relazione devono essere di tipi simili.
- le tabelle devohno avere lo stesso Storage Engine
- la FOREIGN KEY deve essere contenuta nella tabella secondaria
- i campi coinvolti nella relazione devono essere sottoposti ad un indice di qualche tipo , sia nella tabella principale che in quella secondaria in modo da renderli accessibili in modo efficiente
1)per quest'ultima caratteristica l'indice di cui si parla nella tabella principale sarebbe la PK?
La mia tabella amici è questa:
codice:
CREATE TABLE amici (
id INT(20) AUTO_INCREMENT,
nome VARCHAR(20),
cognome VARCHAR(20),
telefono INT(10),
PRIMARY KEY(id)
);
la mia tabella secondaria viene ad essere quella degli Appuntamenti
codice:
CREATE TABLE Appuntamenti (
id_amico INT(20) AUTO_INCREMENT,
dove VARCHAR(20),
motivo VARCHAR(50),
index id_amico_ind(id_amico),
FOREIGN KEY (id_amico) REFERENCES amici(id),
);
2)La Foreign KEY ha legato id_amico della tabella Appuntamenti con id della tabella amici?
3)cosa fa l'indice? tramite id_amico, che si ricava da id (grazie alla Foreign Key) si ha il voto in matematica dell'amico?
4)ma quindi mettendo insieme le cose che mi hai detto mi viene da dire: è solo un modo di costruire le tabelle che devono essere legate tra loro? visto che poi per leggere i dati, cmq bisogna specificare tutti i campi di cui si vuole sapere il valore.