Van MySQL-documentatie :
InnoDB staat een externe sleutelbeperking toe om te verwijzen naar een niet-unieke sleutel. Dit is een InnoDB-extensie voor standaard SQL.
Er is echter een praktische reden om externe sleutels te vermijden op niet-unieke kolommen van de tabel waarnaar wordt verwezen. Dat wil zeggen, wat zou in dat geval de semantiek van "ON DELETE CASCADE" moeten zijn?
De documentatie adviseert verder :
De behandeling van refererende sleutelverwijzingen naar niet-unieke sleutels of sleutels die NULL-waarden bevatten, is niet goed gedefinieerd (...) U wordt geadviseerd externe sleutels te gebruiken die alleen verwijzen naar UNIEKE (inclusief PRIMAIRE) en NIET NULL-sleutels.