El Friday 29 May 2009 22:25:58 escribió: > 2009/5/29 Carlos Bazán <info...@vtr.net>: > > Amigos, tengo la siguiente duda: > > Es mejor tener una función dentro de un esquema que procese datos de las > > tablas de ese esquema o tener una sola función en el esquema public que > > procese data de todos los esquemas? > > depende del problema que quieras solucionar: una desventaja obvia es > que si en algun momento quisieras hacer un procesamiento especial para > un cliente particular (o para varios) empezarias a dañar tu funcion, > una ventaja obvia es que si nunca ocurre que necesites procesamiento > especial sino que debes hacer un cambio que afecte a todos los > clientes solo deberas modificar una funcion y no muchas >
No habrá procesamiento especial para ningún cliente. Las funciones hacen lo mismo para todos por igual. > > Estoy trabajando en una base que almacenará datos de muchos clientes, > > entonces por una cuestión organizacional voy a crear para cada cliente un > > esquema con las mismas tablas (y estructura) usando números, por > > ejemplo "1".tabla1, "1".tabla2, "2".tabla1, "2".tabla2 etc. > > seguro que no puedes tener solo un conjunto de tablas para todos los > clientes? > De poderse se podría, pero se pensó inicialmente separar para efectos de claridad (una carpeta para cada cliente y no todos los clientes en la misma carpeta) y también por seguridad ya que cada cliente tiene los privilegios para su esquema y no otros. Se presupuesta además que una vez terminado el desarrollo del esquema matriz (que es el esquema del que se copiará todo al nuevo esquema creado para cada cliente) no se deberían hacer modificaciones estructurales, solo mantención en cuanto a reindexación y vacuums. > > Entonces como habrán algunas funciones que procesarán datos de tablas de > > cada cliente en particular, me pregunto si es mejor hacer esas funciones > > dentro del esquema de cada cliente en particular o hacer una sola que > > trabaje con las tablas de un cliente en un momento dado, para lo cual se > > le pasaría el esquema a trabajar como parámetro. > > existen formas menos complejas de "dispararse en el pie" Pensé inicialmente en que quizás habría algo de performance involucrado en el tema de utilizar una función para las tablas de cada esquema que una función para todos los esquemas. Parece que da lo mismo, por lo que usaré una función para todos los esquemas. Gracias -- TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda