Un Consejo por favor...

17/04/2006 - 17:41 por Nohel Hernandez | Informe spam
Saludos a toda la gente del Foro, gracias por las respuestas recibidas
anteriormente y por la que espero recibir el dia de hoy :-)

Tengo una duda con respecto al almacenamiento de cierta información, me
explico:

Una Empresa presta sus servicios a 150.000 clientes, este servicio se
factura mensualmente pero cada pago esta dividido a su vez en renglones y la
sumatoria de estos renglones determinan el monto mensual a pagar por cada
cliente, ejemplo:

Costo del Servicio para los meses de Enero a Marzo 2006 = 5.000 cada mes
Que se divide en:
Renglon 1: 3.000
Renglon 2: 1.500
Renglon 3: 500

Nota: Las tarifas son UNICAS para todos los clientes.

Las tarifas mensuales de cada renglon pueden cambiar tanto para todos los
renglones como para uno solo de ellos, tengo una tabla de tarifas por
periodo de fechas que incluye el costo de cada renglon para la fecha
determinada.

Costo del Servicio para los meses de Abril a Julio 2006 = 6.000 cada mes
Que se divide en:
Renglon 1: 3.000
Renglon 2: 2.000
Renglon 3: 1.000

El Cliente puede Efectuar un solo pago que incluye varios meses (que pueden
ser tarifas distintas), entonces dentro de mi recibo de pago tengo un
renglon que indica

Cliente X cancela Enero a Abril por un monto de 21.000

Ahora el objeto de mi pregunta, que me aconsejan uds.??

Opcion 1.- grabar un unico renglon con el total que esta pagando y cuando
requiera un detalle ejecutar un Store Procedure que desgloce la información
y me retorne algo asi:
Cliente X cancelo 21.000
Renglon 1 Enero 2006 : 3.000
Renglon 2 Enero 2006: 1.500
Renglon 3 Enero 2006: 500
Renglon 1 Febrero 2006 : 3.000
Renglon 2 Febrero 2006: 1.500
Renglon 3 Febrero 2006: 500
Renglon 1 Marzo 2006 : 3.000
Renglon 2 Marzo 2006: 1.500
Renglon 3 Marzo 2006: 500
Renglon 1 Abril 2006 : 3.000
Renglon 2 Abril 2006: 2.000
Renglon 3 Abril 2006: 1.000
Total: 21.000

Opcion 2.- Cada vez que paga un cliente tener una tabla de detalle que
almacene cada renglon involucrado en el pago ???

Mis dudas son las siguientes:

En la opción 1, creo que recargaría mucho el servidor ejecutando los Store
Procedures que me retornen el detalle de cada pago, ya que puede existir el
caso que un usuario requiera un reporte que me indique cuanto se ha cobrado
por un renglon especifico en un tiempo determinado... Eso implicaria
desglozar 150.000 pagos por el numero de meses que requiera el usuario

En la opcion 2.- Por el volumen de clientes, me preocupa el crecimiento de
la base de datos ya que un mes puede representar 450.000 registros solo en
el detalle mas 150.000 registros en el pago por lo cual se podria proyectar
un crecimiento de 600.000 mil registros mensuales

Hasta el momento pienso que lo mas sano sería sacrificar espacio en disco y
utilizar la opcion nro. 2, pero que me aconsejan Uds???


Gracias nuevamente por el tiempo que dedicaron a leer mi inquietud



Saludos


Nohel Hernández
Caracas - Venezuela

El menos común de los sentidos es El Sentido Común

Preguntas similare

Leer las respuestas

#1 Isaias
17/04/2006 - 20:38 | Informe spam
Hola Nohel

Si cuentas con ESPACIO EN DISCO, yo guardaria a nivel detalle, porque como
dices, habra clientes que quieran saber a NIVEL DETALLE que han pagado y como
lo han pagado.

Saludos
IIslas


"Nohel Hernandez" escribió:

Saludos a toda la gente del Foro, gracias por las respuestas recibidas
anteriormente y por la que espero recibir el dia de hoy :-)

Tengo una duda con respecto al almacenamiento de cierta información, me
explico:

Una Empresa presta sus servicios a 150.000 clientes, este servicio se
factura mensualmente pero cada pago esta dividido a su vez en renglones y la
sumatoria de estos renglones determinan el monto mensual a pagar por cada
cliente, ejemplo:

Costo del Servicio para los meses de Enero a Marzo 2006 = 5.000 cada mes
Que se divide en:
Renglon 1: 3.000
Renglon 2: 1.500
Renglon 3: 500

Nota: Las tarifas son UNICAS para todos los clientes.

Las tarifas mensuales de cada renglon pueden cambiar tanto para todos los
renglones como para uno solo de ellos, tengo una tabla de tarifas por
periodo de fechas que incluye el costo de cada renglon para la fecha
determinada.

Costo del Servicio para los meses de Abril a Julio 2006 = 6.000 cada mes
Que se divide en:
Renglon 1: 3.000
Renglon 2: 2.000
Renglon 3: 1.000

El Cliente puede Efectuar un solo pago que incluye varios meses (que pueden
ser tarifas distintas), entonces dentro de mi recibo de pago tengo un
renglon que indica

Cliente X cancela Enero a Abril por un monto de 21.000

Ahora el objeto de mi pregunta, que me aconsejan uds.??

Opcion 1.- grabar un unico renglon con el total que esta pagando y cuando
requiera un detalle ejecutar un Store Procedure que desgloce la información
y me retorne algo asi:
Cliente X cancelo 21.000
Renglon 1 Enero 2006 : 3.000
Renglon 2 Enero 2006: 1.500
Renglon 3 Enero 2006: 500
Renglon 1 Febrero 2006 : 3.000
Renglon 2 Febrero 2006: 1.500
Renglon 3 Febrero 2006: 500
Renglon 1 Marzo 2006 : 3.000
Renglon 2 Marzo 2006: 1.500
Renglon 3 Marzo 2006: 500
Renglon 1 Abril 2006 : 3.000
Renglon 2 Abril 2006: 2.000
Renglon 3 Abril 2006: 1.000
Total: 21.000

Opcion 2.- Cada vez que paga un cliente tener una tabla de detalle que
almacene cada renglon involucrado en el pago ???

Mis dudas son las siguientes:

En la opción 1, creo que recargaría mucho el servidor ejecutando los Store
Procedures que me retornen el detalle de cada pago, ya que puede existir el
caso que un usuario requiera un reporte que me indique cuanto se ha cobrado
por un renglon especifico en un tiempo determinado... Eso implicaria
desglozar 150.000 pagos por el numero de meses que requiera el usuario

En la opcion 2.- Por el volumen de clientes, me preocupa el crecimiento de
la base de datos ya que un mes puede representar 450.000 registros solo en
el detalle mas 150.000 registros en el pago por lo cual se podria proyectar
un crecimiento de 600.000 mil registros mensuales

Hasta el momento pienso que lo mas sano sería sacrificar espacio en disco y
utilizar la opcion nro. 2, pero que me aconsejan Uds???


Gracias nuevamente por el tiempo que dedicaron a leer mi inquietud



Saludos


Nohel Hernández
Caracas - Venezuela

El menos común de los sentidos es El Sentido Común




Respuesta Responder a este mensaje
#2 Manuel Vera
17/04/2006 - 21:09 | Informe spam
En el texto

"Nohel Hernandez" escribió en el mensaje
news:%

Mis dudas son las siguientes:

En la opción 1, creo que recargaría mucho el servidor ejecutando los Store
Procedures que me retornen el detalle de cada pago, ya que puede existir
el caso que un usuario requiera un reporte que me indique cuanto se ha
cobrado por un renglon especifico en un tiempo determinado... Eso
implicaria desglozar 150.000 pagos por el numero de meses que requiera el
usuario



¿Por que desglozarias los 150.000 clientes si es solo 1 el que está pidiendo
ese detalle?
Solo mostrarias ese cliente (1) y lo que se le ha cobrado a el durante el
período que se requiera.
Lo que si deberias guardar o especificar es como se desglosa el detalle para
poder recuperar ese histórico.
¿Que tan frecuente puede ser esto? Sacrificar espacio en disco por una
operacion que se realice 1 vez en el período, (¿1 de 150.000?) no me
parecería necesario.


En la opcion 2.- Por el volumen de clientes, me preocupa el crecimiento de
la base de datos ya que un mes puede representar 450.000 registros solo en
el detalle mas 150.000 registros en el pago por lo cual se podria
proyectar un crecimiento de 600.000 mil registros mensuales



En efecto, el crecimiento será bastante en almacenamiento. ¿En cuanto tiempo
llenarás el disco? Calcula el espacio que llena un solo período facturado.
Lo otro es que a medida que aumenten los registros, si no indexas bien las
tablas, hará más lentas y complejas las consultas.

Salu2
MV
Respuesta Responder a este mensaje
#3 Nohel Hernandez
17/04/2006 - 21:56 | Informe spam
Gracias por tu opinion Isaias,

Hasta el momento es la opcion que mas me llama la atención, deberé evaluar
bien lo de la capacidad del disco y los indices y relaciones dentro de la
base de datos.

Saludos


Nohel Hernández
Caracas - Venezuela

El menos común de los sentidos es El Sentido Común



"Isaias" escribió en el mensaje
news:
Hola Nohel

Si cuentas con ESPACIO EN DISCO, yo guardaria a nivel detalle, porque como
dices, habra clientes que quieran saber a NIVEL DETALLE que han pagado y
como
lo han pagado.

Saludos
IIslas


"Nohel Hernandez" escribió:

Saludos a toda la gente del Foro, gracias por las respuestas recibidas
anteriormente y por la que espero recibir el dia de hoy :-)

Tengo una duda con respecto al almacenamiento de cierta información, me
explico:

Una Empresa presta sus servicios a 150.000 clientes, este servicio se
factura mensualmente pero cada pago esta dividido a su vez en renglones y
la
sumatoria de estos renglones determinan el monto mensual a pagar por cada
cliente, ejemplo:

Costo del Servicio para los meses de Enero a Marzo 2006 = 5.000 cada mes
Que se divide en:
Renglon 1: 3.000
Renglon 2: 1.500
Renglon 3: 500

Nota: Las tarifas son UNICAS para todos los clientes.

Las tarifas mensuales de cada renglon pueden cambiar tanto para todos los
renglones como para uno solo de ellos, tengo una tabla de tarifas por
periodo de fechas que incluye el costo de cada renglon para la fecha
determinada.

Costo del Servicio para los meses de Abril a Julio 2006 = 6.000 cada mes
Que se divide en:
Renglon 1: 3.000
Renglon 2: 2.000
Renglon 3: 1.000

El Cliente puede Efectuar un solo pago que incluye varios meses (que
pueden
ser tarifas distintas), entonces dentro de mi recibo de pago tengo un
renglon que indica

Cliente X cancela Enero a Abril por un monto de 21.000

Ahora el objeto de mi pregunta, que me aconsejan uds.??

Opcion 1.- grabar un unico renglon con el total que esta pagando y cuando
requiera un detalle ejecutar un Store Procedure que desgloce la
información
y me retorne algo asi:
Cliente X cancelo 21.000
Renglon 1 Enero 2006 : 3.000
Renglon 2 Enero 2006: 1.500
Renglon 3 Enero 2006: 500
Renglon 1 Febrero 2006 : 3.000
Renglon 2 Febrero 2006: 1.500
Renglon 3 Febrero 2006: 500
Renglon 1 Marzo 2006 : 3.000
Renglon 2 Marzo 2006: 1.500
Renglon 3 Marzo 2006: 500
Renglon 1 Abril 2006 : 3.000
Renglon 2 Abril 2006: 2.000
Renglon 3 Abril 2006: 1.000
Total: 21.000

Opcion 2.- Cada vez que paga un cliente tener una tabla de detalle que
almacene cada renglon involucrado en el pago ???

Mis dudas son las siguientes:

En la opción 1, creo que recargaría mucho el servidor ejecutando los
Store
Procedures que me retornen el detalle de cada pago, ya que puede existir
el
caso que un usuario requiera un reporte que me indique cuanto se ha
cobrado
por un renglon especifico en un tiempo determinado... Eso implicaria
desglozar 150.000 pagos por el numero de meses que requiera el usuario

En la opcion 2.- Por el volumen de clientes, me preocupa el crecimiento
de
la base de datos ya que un mes puede representar 450.000 registros solo
en
el detalle mas 150.000 registros en el pago por lo cual se podria
proyectar
un crecimiento de 600.000 mil registros mensuales

Hasta el momento pienso que lo mas sano sería sacrificar espacio en disco
y
utilizar la opcion nro. 2, pero que me aconsejan Uds???


Gracias nuevamente por el tiempo que dedicaron a leer mi inquietud



Saludos


Nohel Hernández
Caracas - Venezuela

El menos común de los sentidos es El Sentido Común




Respuesta Responder a este mensaje
#4 Nohel Hernandez
17/04/2006 - 22:10 | Informe spam
Gracias por tu tiempo Manuel
Te explico lo siguiente:

cuando mencionas:
¿Por que desglozarias los 150.000 clientes si es solo 1 el que está
pidiendo ese detalle?



No necesariamente la consulta es para informar al cliente su detalle, puede
que el Gerente de Cobranzas quiera ver lo cobrado correspondiente al Renglón
1, durante el período de Enero a Abril de todos los clientes.

Lo que si deberias guardar o especificar es como se desglosa el detalle
para poder recuperar ese histórico.



El detale esta guardado en una tabla de Tarifas por llamarla asi, estas
tarifas tienen un período, pero el cobro se puede hacer de varios periódos
en un mismo renglon, por lo cual un solo registro de cobro puede estar
conformado por varias tarifas, como el ejemplo que mencione en mi primer
post.

¿Que tan frecuente puede ser esto? Sacrificar espacio en disco por una
operacion que se realice 1 vez en el período, (¿1 de 150.000?) no me
parecería necesario.


No te puedo decir que tan frecuentemente los usuarios de la Base de datos
consultarán detalles de los renglones al cual pertenece un cobro, pero si me
da temor el tiempo que durará el servidor desglozando la cobranza de un año
para un renglón específico.

Creo que sigo optando por la opcion 2, que guarde el desgloce cada vez que
un cliente pague, y seguiré tu consejo de verificar espacio, indices y
relaciones en la base de datos.

A fin de cuentas la tabla de desgloce lo que deberia llevar es el Id del
registro origen (El Cobro en si) el id del registro dentro del desgloce de
la tarifa y el periodo al cual corresponde ese renglon, asi que serían tres
campos dentro de la tabla de desgloces del pago, porque los montos si son
fijos y ya estan dentro de la tarifa definida.


Saludos


Nohel Hernández
Caracas - Venezuela

El menos común de los sentidos es El Sentido Común




"Manuel Vera" escribió en el mensaje
news:
En el texto

"Nohel Hernandez" escribió en el mensaje
news:%

Mis dudas son las siguientes:

En la opción 1, creo que recargaría mucho el servidor ejecutando los
Store Procedures que me retornen el detalle de cada pago, ya que puede
existir el caso que un usuario requiera un reporte que me indique cuanto
se ha cobrado por un renglon especifico en un tiempo determinado... Eso
implicaria desglozar 150.000 pagos por el numero de meses que requiera el
usuario



¿Por que desglozarias los 150.000 clientes si es solo 1 el que está
pidiendo ese detalle?
Solo mostrarias ese cliente (1) y lo que se le ha cobrado a el durante el
período que se requiera.
Lo que si deberias guardar o especificar es como se desglosa el detalle
para poder recuperar ese histórico.
¿Que tan frecuente puede ser esto? Sacrificar espacio en disco por una
operacion que se realice 1 vez en el período, (¿1 de 150.000?) no me
parecería necesario.


En la opcion 2.- Por el volumen de clientes, me preocupa el crecimiento
de la base de datos ya que un mes puede representar 450.000 registros
solo en el detalle mas 150.000 registros en el pago por lo cual se podria
proyectar un crecimiento de 600.000 mil registros mensuales



En efecto, el crecimiento será bastante en almacenamiento. ¿En cuanto
tiempo llenarás el disco? Calcula el espacio que llena un solo período
facturado. Lo otro es que a medida que aumenten los registros, si no
indexas bien las tablas, hará más lentas y complejas las consultas.

Salu2
MV


Respuesta Responder a este mensaje
#5 Manuel Vera
17/04/2006 - 23:47 | Informe spam
Yo hace poco hice un sistemita de facturación con 1300 clientes, algo tipo
condominios, y originalmente grababa el detalle. El proceso se genera 1 vez
al mes. Y grabando el detalle fue un caos. CLARO! OJO! era en Access asi
que al final opté por eliminar la tabla detalle y generarlo en vivo cuando
el usuario lo requiere.
Otro dato, es que mi sistema difiere del tuyo en que el administrador nunca
consultara, por ejemplo, todos los gastos por electricidad de 1 año. Las
consultas son por cliente específico.
En fin... suerte en tu decision final.
MV

"Nohel Hernandez" escribió en el mensaje
news:
Gracias por tu tiempo Manuel
Te explico lo siguiente:

cuando mencionas:
¿Por que desglozarias los 150.000 clientes si es solo 1 el que está
pidiendo ese detalle?



No necesariamente la consulta es para informar al cliente su detalle,
puede que el Gerente de Cobranzas quiera ver lo cobrado correspondiente al
Renglón 1, durante el período de Enero a Abril de todos los clientes.

Lo que si deberias guardar o especificar es como se desglosa el detalle
para poder recuperar ese histórico.



El detale esta guardado en una tabla de Tarifas por llamarla asi, estas
tarifas tienen un período, pero el cobro se puede hacer de varios periódos
en un mismo renglon, por lo cual un solo registro de cobro puede estar
conformado por varias tarifas, como el ejemplo que mencione en mi primer
post.

¿Que tan frecuente puede ser esto? Sacrificar espacio en disco por una
operacion que se realice 1 vez en el período, (¿1 de 150.000?) no me
parecería necesario.


No te puedo decir que tan frecuentemente los usuarios de la Base de datos
consultarán detalles de los renglones al cual pertenece un cobro, pero si
me da temor el tiempo que durará el servidor desglozando la cobranza de un
año para un renglón específico.

Creo que sigo optando por la opcion 2, que guarde el desgloce cada vez que
un cliente pague, y seguiré tu consejo de verificar espacio, indices y
relaciones en la base de datos.

A fin de cuentas la tabla de desgloce lo que deberia llevar es el Id del
registro origen (El Cobro en si) el id del registro dentro del desgloce de
la tarifa y el periodo al cual corresponde ese renglon, asi que serían
tres campos dentro de la tabla de desgloces del pago, porque los montos si
son fijos y ya estan dentro de la tarifa definida.


Saludos


Nohel Hernández
Caracas - Venezuela

El menos común de los sentidos es El Sentido Común




"Manuel Vera" escribió en el mensaje
news:
En el texto

"Nohel Hernandez" escribió en el mensaje
news:%

Mis dudas son las siguientes:

En la opción 1, creo que recargaría mucho el servidor ejecutando los
Store Procedures que me retornen el detalle de cada pago, ya que puede
existir el caso que un usuario requiera un reporte que me indique cuanto
se ha cobrado por un renglon especifico en un tiempo determinado... Eso
implicaria desglozar 150.000 pagos por el numero de meses que requiera
el usuario



¿Por que desglozarias los 150.000 clientes si es solo 1 el que está
pidiendo ese detalle?
Solo mostrarias ese cliente (1) y lo que se le ha cobrado a el durante el
período que se requiera.
Lo que si deberias guardar o especificar es como se desglosa el detalle
para poder recuperar ese histórico.
¿Que tan frecuente puede ser esto? Sacrificar espacio en disco por una
operacion que se realice 1 vez en el período, (¿1 de 150.000?) no me
parecería necesario.


En la opcion 2.- Por el volumen de clientes, me preocupa el crecimiento
de la base de datos ya que un mes puede representar 450.000 registros
solo en el detalle mas 150.000 registros en el pago por lo cual se
podria proyectar un crecimiento de 600.000 mil registros mensuales



En efecto, el crecimiento será bastante en almacenamiento. ¿En cuanto
tiempo llenarás el disco? Calcula el espacio que llena un solo período
facturado. Lo otro es que a medida que aumenten los registros, si no
indexas bien las tablas, hará más lentas y complejas las consultas.

Salu2
MV






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida