buen día, tengo una BD de mysql sencilla pero el procedimiento un poco dificil

, el caso es que tengo 2 tablas:
TABLA1
Código:
CREATE TABLE `contratos` (
`idcontrato` varchar(20) NOT NULL,
`valorcontrato` mediumint(40) NOT NULL,
PRIMARY KEY (`idcontrato`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
Código:
CREATE TABLE `facturas` (
`numfactura` varchar(15) NOT NULL,
`valorfactura` mediumint(30) NOT NULL,
`idcontrato` varchar(20) NOT NULL,
`valorcontrato` mediumint(40) NOT NULL,
`saldo` int(25) NOT NULL,
PRIMARY KEY (`numfactura`),
KEY `idcontrato` (`idcontrato`),
CONSTRAINT `facturas_ibfk_1` FOREIGN KEY (`idcontrato`) REFERENCES `contratos` (`idcontrato`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
lo que quiero es que en la tabla factura me queden todos los pagos hechos a un contrato, es decir que si por ejemplo en tengo un contrato por 5000 en la tabla facturas me vaya descontando, el problema es que como primera instancia el va a tomar el valor del contrato - el valor de la factura paga, pero en segunda instancia el ya no va a tomar el valor del contrato si no el valor de el total de la factura en que quedo el contrato.¿Cómo puedo hacer esto?