Ecco una lista di controllo per te, buona fortuna;)
1) il tipo di sorgente della chiave esterna e i campi di riferimento devono essere identici
2) entrambi i campi di origine e di riferimento devono essere non firmati
3) il campo sorgente deve essere indicizzato
4) entrambe le tabelle devono essere InnoDB