Ну, коллега, надо не просто генерить, а думать, что к чему. Программирование, оно очень плотно с этим связано.
Я даже слышал легенды от стариков, что если не подумать, вообще база не получится!
Даже заглядывать в ваш код не буду, а сразу скажу: таблица подчиненная, требует наличия записи в главной. А вы ее туда не занесли пока, в главную-то.