Encuesta. ¿Desnormalización o no?

Recientemente, mi colega profesional y yo discutimos en Internet (más precisamente, en LANs en Habré) la arquitectura de un determinado sistema, y ​​tuvimos una disputa sobre un tema.



Hay un almacén donde se almacenan diferentes materiales, hay documentos para la recepción y consumo de materiales, hay registros en los documentos con información "material, cantidad", relación uno a muchos. La base de datos contiene una tabla con información sobre la disponibilidad actual de materiales en el almacén, hay una tabla para documentos y una tabla para sus posiciones. Llamémoslos "existencias_actual", "documentos", "posiciones_documento".



¿Debe considerarse la tabla "existencias_actual" una desnormalización de datos?



El argumento del colega es que los datos de "current_stocks" se pueden calcular a partir de documentos durante toda la vida útil del sistema, por lo que se trata de una desnormalización.



Mi argumento es que cualquier estado actual se puede calcular a partir del historial de cambios, por lo que esto no es una desnormalización. De lo contrario, el término "normalización" no tendría sentido. Se refiere específicamente a modelar el estado actual. Estos son diferentes modelos, "current_stocks" modela el estado del almacén, "document_positions" líneas de texto en los documentos.




All Articles