Sobre el temas legales no se XD, pero para la programacion deber tener una tabla cabecera_fact para guardar el nombre, fecha,etc(Lo que valla en la cabecera) y una detalle_fact para los datos de los productos y deberias investigar sobre la sesiones, una vez que consigas los guardar los datos en sus respectivas tablas ya solo es cosa de hacer una consulta, espero que tengas suerte con tu proyecto
.