Excerpts from JHONATAN CANO FURAGARO's message of mié oct 27 09:58:51 -0300 2010: > Buen día Guillermo, > > Gracias por tu pronta respuesta, tendre en cuenta las vistas y funciones. > > Pero por ejemplo, tengo una capa en PostgreSQL/PostGIS, donde tengo campo1, > campo2, campo3 y zonificacion, donde los campo (1,2,3 son compontes que > almacenan calificaciones ambientales , físico, biótico, social en este caso) > los valores tienen una calificación de 1 a 5 y zonificación es el resultado > de una suma ponderada de acuerdo a los pesos de los componentes. En dado > momento estoy realizando una actualización de esta tabla (campo1...)y que > estos cambios se deben ver reflejados en el campo zonificación y en el mapa > final de zonifiación (en la leyenda). En este caso debería tener o no el > campo en la tabla?
Hola, para cumplir con las "formas normales" ningún campo calculado debería almacenarse. Si uno los almacena es solamente como una optimización; pero como toda optimización tiene un costo de mantenibilidad a largo plazo, lo que debes hacer antes de instalarla es asegurarte que realmente vale la pena almacenarlo, es decir, primero haces un poco de "profiling" de la base de datos normalizada, y si te encuentras con que ese cálculo es un cuello de botella entonces lo optimizas. Si los pesos son constantes, o están almacenados en el mismo registro, la aritmética para calcular la zonificación sigue siendo bastante barata. Si se tratara de regenerar un polígono o algo así, que puede tomar una cantidad considerable de tiempo de CPU, yo lo consideraría. O bien si se tratara de un cálculo que requiriera recorrer varios registros para calcularse. Honestamente creo que una suma ponderada no califica como suficientemente complejo para ameritar almacenarse. -- Álvaro Herrera <alvhe...@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda