A ver el
total de orden no es estrictamente necesario, incluso si nos ponemos estrictos podria ser peligroso puesto que es un campo calculado. Siempre lo pudes calcular sumando los registros relacionados con una orden, luego para que guardarlo. Pero si en la sesion vas calculando el
total tampoco seria un problema....
Luego ya no tienes problema, insertas la nueva orden, obtienes el ultimo id insertado
LAST_INSERT_ID().
En la tabla CONTENIDO_ORDEN te falta un campo
num_orden que es donde vas a guardar el id obtenido con la funcion que te indico.
Deberías encapsular todos los inserts en una transacción para evitar que un error deje incompleta una orden o sin contenido.
ORDEN(num_orden, id_usuario, fecha)
(con o sin total)
CONTENIDO_ORDEN(id_contenido,
num_orden, id_producto. cantidad, precio)
donde id_contenido es la PK autoinc y
num_orden es FK referenciando a ORDEN
Esto te permitirá hacer
para obtener el total de cada orden.
De hecho,
id_contenido tampoco es del todo necesario ya que
num_orden+id_producto podrian ser una PK compuesta, esto ya depende de tu estilo.