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