Cuando hay llaves compuestas como foreign key debe haber un javascript (jquery) que sea capaz de inhabilitar las llaves que son consecutivas, por ejemplo, TarifaMateria tiene una llave de Materia que tiene una llave de Cliente, entonces o bien se maneja en forma conjunta la llave idMateria - idCliente o se hacen dos select de tal manera que cuando seleccione el idCliente se habilite el idMateria o que si selecciono un idMateria se modifique el idCliente.
Cuando hay llaves compuestas como foreign key debe haber un javascript (jquery) que sea capaz de inhabilitar las llaves que son consecutivas, por ejemplo, TarifaMateria tiene una llave de Materia que tiene una llave de Cliente, entonces o bien se maneja en forma conjunta la llave idMateria - idCliente o se hacen dos select de tal manera que cuando seleccione el idCliente se habilite el idMateria o que si selecciono un idMateria se modifique el idCliente.