Las reglas básicas, son:
 
El campo de enlace debe ser del mismo tipo de datos que el campo referenciado (ojo si el referenciado es autoinc es un numérico (INTEGER o LONG), el atributo autoinc no tienen nada que ver.  
El campo referenciado debe ser único (PK o índice único) en la tabla referenciada. 
Toda FK debe contener un valor que exista previamente en el campo referenciado o ser nulo (si le es permitido serlo). 
Esas son las reglas luego la coherencia de las FK solo la puedes saber tu que conoces lo que quieres hacer.   
http://dev.mysql.com/doc/refman/5.0/...nstraints.html 
Por cierto tus tablas deben ser 
innodb