Non, mysql ne gère pas les clés étrangères il me semble, ou peut etre dans une des dernières versions, je ne suis plus trop au courant de ca.
Le fait que mysql ne gère pas les clés étrangères signifie qu'il te faut créer des tables intermédiaire pour lier les objets.
Ex :
Tu as une table voiture :
Voiture {
id_voiture
immatriculation
}
et une table couleur :
Couleur {
id_couleur
libelle
}
Tu veux attribuer une couleur à une voiture, tu créé la table intermédiaire (qui s'appelle une association en MERISE et non une ENTITE) :
Voiture_Couleur {
id_voiture
id_couleur
}
Voilà la présentation de la base de donnée.
Du coup, il te faut faire les controles au niveau du code, dans tes requete SQL, par exemple tu souhaite lister toutes les voitures de couleur verte :
$request = "SELECT v.immatriculation FROM Voiture c, Couleur c, Voiture_Couleur vc WHERE vc.id_voiture = v.id_voiture AND vc.id_couleur = c.id_couleur AND c.libelle = 'vert'";
Comme tu le vois dans l'exemple, c'est à toi dans le code de lier les tables par rapport aux identifiants.


