2009/6/4 Alvaro Herrera <alvhe...@alvh.no-ip.org> > Jose Vasquez escribió: > > > Bueno, me gustaria saber porque Alvaro considera p'esimo este dise~no, me > > parece importante su opinion y pues si Carlos considera podemos hablar > mas > > en detalle el tema. > > Una cosa es el particionamiento, que en Postgres significaría tomar una > tabla grande de datos usando herencia y contraint_exclusion, etc. En > esa línea uno parte con una tabla y la divide según algún criterio (el > cual válidamente podría ser "el ID de cliente"). En eso no veo ningún > problema, porque no has afectado el diseño de la BD sino solamente la > implementación. > > Otra cosa totalmente distinta es partir con un esquema por cada cliente, > en el cual cada esquema contiene una copia de cada tabla, que es lo que > estaba planteando Carlos. Esta idea no tiene ningún sentido desde el > punto de vista del diseño de la base de datos.
NO Estoy de acuerdo con Alvaro y defiendo a Carlos en este punto por lo > siguiente: > Alvaro: lo que hacemos nosotros es una combinacion de las dos cosas > anteriores. Esto es si una tabla va a ser particionada, las hijas deben > tener un nombre distinto, por ejemplo datos se podria particionar en > datosClientea0Enero, datosclientea0Febrero...... datosClientea0Diciembre, > luego datosClienteA1Enero, datosClienteA1Enero, ....... > datosClienteA1Dicimebre, y sucesivamente. Lo que hacemos nosotros, de una > forma simplificada es particionar y usar los esquemas para no cambiar el > nombre a la tabla de esta forma los trigers, las funciones que se creen > dentro de cada uno de los esquemas se refieren a la misma tabla y no tengo > que realizar un gran esfuerzo para programar las funciones, sino copiarlas > dentro de cada esquema. (Esto lo hemos automatizado en un triger cuando se > crea un registro de un periodo).con esquemas, de esta forma todas las tablas > de llaman datos, pero la padre esto es la que debo consultar para recuperar > información esta en el esquema A0 y las hijas esta en el esquema > A0Enero/datos, A1Enero/datos, A0Febrero/datos, A1Febrero/datos, > A0Enero/datos, A1Febrero/datos, etc. > Entonces la tabla que inicialmente se llamaria datosClientea0Enero ahora se > llama A0Enero/datos donde A0Enero es un esquema y la tabla sigue llamandose > datos, lo unico es que ahora esta dentro de un esquema (pero es un pedacito > de la Grande, para utilizar el particionamiento). Gracias por su opinion > Alvaro y me gustaria defender mi posicion para ver si logro convencerlo de > que es una idea muy buena o si me logra convencer de que estoy en un > posicion indefendible y tengo un mal diseno. Pienso que esta idea es buena > para todos. En especial para los que tengan grandes volumenes de datos que > es cuando aplica particionar tablas. (El objetivo es convencerlo de que el > uso de esquemas en vez de cambiar el nombre a las tablas ayuda mucho y > reduce las complejidades de la programacion subsecuente a utilizar > particionamiento). > -- > Alvaro Herrera Valdivia, Chile ICBM: S 39º 48' 55.3", W 73º 15' > 24.7" > Voy a acabar con todos los humanos / con los humanos yo acabaré > voy a acabar con todos / con todos los humanos acabaré (Bender) >