Cita: Tabla 1 nofactura PK(lo almaceno como varchar porque en ocasiones el int me da problemas)
Totalfactura int PK
Si el INT te da problemas, es que lo estás manejando mal, pero eso no justifica aplicar parches que lo único que lograrán es introducir defectos y fallas de consistencia.
Cita: En la tabla 3 quiero que todos excepto el total sean foranes ¿Se puede? y lo trate de hacer y coloque : foreign key(nofactura)references tabla1(nofactura)
Y me dio correcto, pero al hacer lo mismo con totalfactura me salio un errorsote que jamas habia visto
No puedes hacer que todo sea FK sin que cada una de los campos sea PK...
Eso es simple y sencillamente imposible, sin contar que en tu caso es absurdo e innecesario.
En el supuesto caso que pudiera ser, y consiguieses que cada campo de la tabla B refiriera a un campo de l mismo registro de la tabla A, la tabla B sería una replica de la A y eso no tiene ninguna utilidad.
¿Me pudes explicar para qué y en que escenario del mundo puede darse que necesites replicar los valores de una factura de un contrato, en el contrato mismo?
No existe un requerimiento como ese en ningún sistema que yo haya visto, y aunque existiera, estarías creando una dependencia circular, que es incumplible.