Forzar integridad sin crear más tablas
Tengo la base de datos con las siguientes tablas:
Tabla horario_completo: id (pk), id_trabajador
Tabla horario_unitario: id (pk), id_horario_completo(fk)
Tabla Solicitud_suplencia: id(pk), id_horario_completo(fk)
Tabla dia_suplencia: id_solicitud_suplencia(pk,fk), id_horario_unitario(pk,fk)
A groso modo el horario completo contiene varios horarios unitarios que representan todos los horarios sobre lugares diferentes donde un trabajador trabaja, si se solicita una suplencia esta puede contener varios dias pero estos hacen referencia a un solo lugar del horario del trabajador.
Mi problema es que con el diseño actual no consigo que una solicitud sobre un horario completo ya definida, al añadirle un dia de suplencia es posible hacerlo sobre horarios completos diferentes, o lo que es lo mismo sobre trabajadores distintos ya que el dia de suplencia tiene de fk al horario unitario (como debe ser ya que señala el lugar) y no al horario completo.
¿Alguna idea?