Juan
Son muchos los problemas o inconvenientes que te podría presentar una estructura como esa. Te comento algunas que se me ocurren ahora mismo:
Bajo rendimiento por la necesidad de acceder a diferentes tablas, esto disminuye el tiempo de respuesta de una consulta.
Bajo rendimiento por hacer cálculos aritméticos entre diferentes tablas (distinto al punto anterior).
Poca escalabilidad... Si necesitan incorporar nuevos tipos de documento, entonces estarás creando tablas y tablas para cada uno de ellos.
Baja eficiencia en el código de tu sistema. Esto principalmente por la dificultad de programar haciendo enlacen entre tablas.
No está normalizado. Aquí sería algo de lectura extensa para analizar pero a simple vista estas repitiendo datos en todas las tablas y esto no cumple con los estándares de normalización de base de datos.
Entre otros...
NOTA: Como recomendación adicional veo que te faltan algunos campos importantes como los relacionados a los impuestos (en casi todos los paises cobran IVA o impuestos similares y deben almacenarse los montos por separado del monto de la venta neta). Adicionalmente campos de estatus de los documentos ya que las leyes fiscales permiten la anulación de documentos y en als declaraciones tributarias se debe reflejar esto (puedes hacer una factura y luego anulararla... esto genera un documento con estatus ANULADO)... Te recomiendo campos de hora para auditar, además de campo de usuario para segmentar quién vende más o quién vendió que cosa. etc, etc, etc.
Como te dije es un tema amplio pero todo está en analizar bien e imaginarse todos los escenarios antes de comenzar.
___________________________
Ing. Jesús Alfredo Uzcanga
Twitter: @JesusUzcanga
We learn the 20% of what we HEAR,
the 50% of what we SEE,
the 80% of what we DO and
the 95% of what we TEACH.
____________________________________________________________
https://www.linkedin.com/in/jauzcanga/