Dari dokumentasi MySQL :
InnoDB mengizinkan batasan kunci asing untuk mereferensikan kunci yang tidak unik. Ini adalah ekstensi InnoDB untuk SQL standar.
Namun, ada alasan praktis untuk menghindari kunci asing pada kolom non-unik dari tabel referensi. Artinya, apa yang harus menjadi semantik "ON DELETE CASCADE" dalam kasus itu?
Dokumentasi lebih lanjut menyarankan :
Penanganan referensi kunci asing ke kunci yang tidak unik atau kunci yang berisi nilai NULL tidak didefinisikan dengan baik (...) Anda disarankan untuk menggunakan kunci asing yang hanya merujuk pada kunci UNIK (termasuk PRIMARY) dan NOT NULL.