En classe, nous étudions tous les bases de données, et tout le monde utilise Access. Comme cela m'ennuie, j'essaie de faire ce que le reste de la classe fait, mais avec des commandes SQL brutes avec MySQL au lieu d'utiliser Access.
J'ai réussi à créer des bases de données et des tables, mais maintenant comment faire pour établir une relation entre deux tables ?
Si j'ai mes deux tables comme ceci :
CREATE TABLE accounts(
account_id INT NOT NULL AUTO_INCREMENT,
customer_id INT( 4 ) NOT NULL ,
account_type ENUM( 'savings', 'credit' ) NOT NULL,
balance FLOAT( 9 ) NOT NULL,
PRIMARY KEY ( account_id )
)
y
CREATE TABLE customers(
customer_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
address VARCHAR(20) NOT NULL,
city VARCHAR(20) NOT NULL,
state VARCHAR(20) NOT NULL,
PRIMARY KEY ( customer_id )
)
Comment puis-je créer une "relation" entre les deux tables ? Je veux que chaque compte se voie attribuer un numéro de client (pour indiquer qui en est le propriétaire).
61 votes
"Je REFUSE d'étudier Access, je vais étudier un VRAI moteur de base de données : MySQL" C'est ça l'esprit ! Félicitations =D
2 votes
Notez que les contraintes de clé étrangère n'implémentent pas les relations, elles implémentent l'intégrité. L'association entre account_id et customer_id dans la table accounts met en œuvre la relation entre les entités respectives.
1 votes
"That's the spirit !", tant que c'est mysql avec InnoDB, et non MyISAM. De plus, postgreqsl a quelques fonctionnalités intéressantes par rapport à MySQL qui valent la peine d'être regardées.