Per quanto riguarda il problema con InnoDB dovresti controllare di avere una versione aggiornata di MySQL. Segui il ilnk che ti è stato proposto da internet precedentemente.

Per il ragionamento sul funzionamento della chiave esterna, direi che è corretto. Puoi decidere tu che comportamento deve assumere il DBMS quando viene modificato (aggiornato o cancellato) un record sulla tabella Master (quella che contiene l'ID primario): generalmente puoi decidere che il DBMS cancelli in cascata tutti i record corrispondenti nella tabella legata da vincolo (quando, ad esempio, viene cancellato il record corrispondente), oppure che vengano aggiornati in cascata (se c'è una modifica), oppure puoi decidere che vengano settati a NULL tutti i valori relativi, che non venga apportata alcuna modifica, ecc.
Trovi tutto sulla documentazione di MySQL, anche se le mie informazioni dovrebbero valere in generale per un qualsiasi DBMS (o almeno quelli che supportano un minimo di standard SQL).


Ciao.