Page 1 sur 1

Laison entre tables...

Posté : 15 déc. 2005, 16:09
par 3LpH4Ri0N
Bonjour,
je voudrais savoir comment créer une liaison entre des tables, avant de crier que je n'ai pas cherché (on vous connaît :P ) sisi j'ai bien cherché mais vu mes capacités limités j'ai rien trouvé d'adapté à mon QI :)

Euh voilà ce que j'ai trouvé :
cas 1 : 1 étudiant n'appartient qu'à 1 ou 1 seul club : Etudiants 1,1 <----> 0,n Clubs
1.B
Code:

Etudiants
---------
id_etudiant
nom_etudiant
id_club ---> clé étrangère vers la table Clubs

Clubs
-----
id_club
nom_club



ces deux solutions fonctionnent, mais la deuxième est un peu plus pratique puisque si le club "Echecs" change de nom pour devenir le club "Jeux de société", tu ne changes le nom qu'une seule fois
dès lors que tu as des valeurs qui se répétent, parmis un choix de quelques possibilités seulement, crée une nouvelle table
(posté par Ouckileou)
donc moi je voudrais réaliser exactement la même typlologie mais dans PHPMYADMIN soit ceci :
clé étrangère vers la table Clubs
Mais je ne sais pas faire une clef étrangère...

Si vous pouviez m'aider, merci

Posté : 15 déc. 2005, 17:34
par mere-teresa
Comme tu le vois, une liaison entre les tables est de nature sémantique.
Techniquement, on ajoute l'identifiant du club à la fiche de chaque étudiant : un étudiant n'appartient donc qu'à un seul club.

Si on avait voulu qu'un étudiant puisse appartenir à plusieurs clubs, cette solution ne peut pas fonctionner.
Est-ce que jusque là, tu comprends ?

Posté : 15 déc. 2005, 18:11
par 3LpH4Ri0N
oui ca c'est bon :)

Re: Laison entre tables...

Posté : 15 déc. 2005, 18:15
par sadeq
....
donc moi je voudrais réaliser exactement la même typlologie mais dans PHPMYADMIN .....Mais je ne sais pas faire une clef étrangère...
Pour créer une relation entre clé étrangère et clé primaire dans MYSQL en utilisant PHPMYADMIN, il faut créer des tables de type INNODB.

Comment faire?
Sous PHPMYADMIN, quand tu crée une table pour la première fois il faut choisir le type "innoDb".

Pour créer une clé étrangère qui lie deux tables il faut écrire en SQL par exemple:

Code : Tout sélectionner

CREATE TABLE `table1` ( `id` INT NOT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB ; CREATE TABLE `table2` ( `id` int(11) NOT NULL auto_increment, `ce` int(11) NOT NULL REFERENCES table1(id), PRIMARY KEY (`id`) ) ENGINE=InnoDB;
Ici, le champs "ce" de la table2 est lié au champ "id" de table1.
"ce" est donc une clé étrangère.
Cette liaison est assurée par le mot-clé "REFERENCES" en français "Fait référence à"

Le mot-clé "ENGINE = InnoDB détermine le type innodb de la table.

Posté : 15 déc. 2005, 20:08
par 3LpH4Ri0N
okay merci bien :)