Le moteur MyISAM supporte les clés étrangères. Ce qu'il ne supporte pas, ce sont les contraintes de clés étrangères.
Vous pouvez créer autant de clés étrangères que vous le souhaitez, mais n'attendez pas de la base de données qu'elle applique l'intégrité à votre place.
Ne changez pas de moteur dans votre application sans avoir effectué des tests approfondis ; le changement de moteur affecte le comportement et n'est pas recommandé sans une grande prudence et beaucoup de travail d'assurance qualité. En particulier, le passage de MyISAM à InnoDB brisera votre application si.. :
- Il ne gère pas les blocages de manière appropriée (les blocages ne se produisent pas sur MyISAM).
- Il s'attend à un verrouillage au niveau de la table
- Il s'appuie sur les fonctionnalités (pour la plupart douteuses) de MyISAM
- Il s'agit de performances élevées et vous n'avez pas compris comment régler InnoDB correctement, mais vous avez bien réglé MyISAM (ou pas mal).
- Vous n'avez pas évalué l'impact du changement de moteur sur l'espace disque.