Cita: Ya que si tengo, las facturas asociadas a listas de precios, ¿cada vez que el usuario desee cambiar algún precio deberá hacer una nueva lista?.
Es un poco más complejo que eso, pero la idea es mas o menos esa.
Yo trabajo para una empresa que tiene enormes cantidades de listas de precios aplicables en diferentes momentos del tiempo, y para una enorme cantidad de categorías de clientes, en base a una ingente cantidad de variables, y para productos y servicios que se actualizan casi en forma diaria. No te puedes hacer una idea de lo complejo del sistema.
Pero aún con toda esa complejidad, el sistema de cálculo de precios de un mismo producto para un momento dado del tiempo, tienes una pasmosa simplicidad basada precisamente en ese esquema: Listas de precios que a su vez tienen versiones que se aplicaron en determinados periodos, las que tienen fecha de alta y baja. En consecuencia, determinar que lista tiene vigencia para una operación dada es relativamente sencillo.
Cita: Cuando sean muchos productos sera una tarea titanica, lo unico que deberia hacerse es cambiar tan solo los precios nada mas.
En realidad es bastante más simple de lo que crees. Como el esquema de dependencia de una lista de precios es dinamico, y semejante a la de detalle de una factura, lo que se hace es hacer actualizaciones masivas de precios en uno o más subprocesos específicamente diseñados para eso.
Las actualizaciones masivas, entonces, aplican sólo a los productos que se desea actualizar y los procesos recorren todas las listas de precio activas, creando una nueva versión automáticamente para aquellas que están afectadas.
Puede parecerte enredado, y en cierto sentido lo es, pero es efectivo.