Buenas aviana, aunque sean claves ajenas a esta tabla tambien han de ser declarados los campos como si fueran de esa misma tabla.
Pasate de todas formas por aqui que yo tambien tuve problemillas con ese tema y gracias a ese ejemplo lo consegui solucionar
http://www.forosdelweb.com/f21/claves-ajenas-mysql-220538/
Salu2