InnoDB permite que una restricción de clave externa haga referencia a una clave no única. Esta es una extensión de InnoDB para SQL estándar.
Sin embargo, existe una razón práctica para evitar claves foráneas en columnas no únicas de la tabla a la que se hace referencia. Es decir, ¿cuál debería ser la semántica de "ON DELETE CASCADE" en ese caso?
La documentación aconseja más :
El manejo de referencias de claves externas a claves no únicas o claves que contienen valores NULOS no está bien definido (...) Se recomienda utilizar claves externas que hagan referencia solo a claves ÚNICAS (incluidas PRIMARIAS) y NO NULAS.