Código MySQL:
Ver original C.id,
C.num_fac,
C.fecha,
C.monto,
F.id_cli,
N.nombre
F.id_pro,
F.cantidad
De todos modos hay un par de detalles para analizar del modelo que propones.
1) La "cabecera" de una factura no necesita un "ID" propio. El número de factura es suficiente para identificarlo, porque además es atributo propio de la factura. Y "cabecera" no es un buen nombre. En realidad esa tabla es FACTURA.
2) La que pones en "factura" es en realidad el detalle de la factura, por lo que debería llamarse algo así como FACTURA_DETALLE.
3) El id del cliente no es un atributo del detalle, sino de la factura.
4) El monto es un atributo calculable. Sólo se almacena si corresponde a un monto puesto con descuentos o consideraciones distintas. Si proviene de la suma, no se almacena.
5) La PK de una factura es siempre su número, y como mucho también el identificador de sucursal o punto de venta, pero no el cliente. El cliente no puede ser parte de la PK porque en ese caso dos clientes podrían tener el mismo numero de factura sin romper la unicidad de la clave.
6) EN el detalle de la factura falta el número de subitem, renglón o línea. Ambos componen la PK de esa tabla y uno es a la vez, FK. No puede ser el ID del producto con la factura y el cliente, proque una factura puede llegar a contener (sucede en la vida real) más de una vez el mismo producto con diferentes cantidades en la misma compra....
¿Se comprende la idea?