Además de los temas de normalización de tu BD y modelo de datos de esta que tal vez deberías optimizar (si corresponde). ...
El tratamiento de un "mega-formulario" . .podrías hacerlo en mútiples páginas que contengan segmentos de ese formulario que correspondan al mismo grupo de datos que se está solicitando .. Las variables que vas generando desde cada uno de estos formularios (en páginas independientes) las puedes ir almacenando en una sesión y .. al finalizar el proceso (último formulario completado) .. inicias el proceso de guardar esos datos en tu tabla/s implicadas de tu BD.
En
www.mysql-hispano.com en su sección de tutoriales/artículos tienes uno sobre "normalización" (teoría + orientado a Mysql).
Un saludo,