MySQLドキュメント から :
InnoDBでは、外部キー制約が非一意キーを参照できます。これは、標準SQLのInnoDB拡張機能です。
ただし、参照されるテーブルの一意でない列で外部キーを回避するのは実用的な理由があります。つまり、その場合の「ON DELETECASCADE」のセマンティックはどうあるべきですか?
非一意キーまたはNULL値を含むキーへの外部キー参照の処理は明確に定義されていません(...)UNIQUE(PRIMARYを含む)およびNOTNULLキーのみを参照する外部キーを使用することをお勧めします。