Balances de cuentas de contabilidad

02/10/2004 - 07:29 por El principiante | Informe spam
Cual seria un buen esquema para conservar balances contables en una tabla de
balances : por ej. guardar un resumen mensual por cuenta ?

Entonces al insertar o borrar un movimiento debo tener un trigger que lo
vaya actualizando.

Preguntas similare

Leer las respuestas

#6 El principiante
04/10/2004 - 00:23 | Informe spam
Quiere decir que las vistas indizadas se mantienen actualizadas en linea
cuando se actualiza la tabla origen ? es decir que no son "resueltas" al
momento de referenciarlas en un select ?

Son como si fueran tablas que existen fisicamente no ?


"Miguel Egea" wrote in message
news:
Los triggers, como todo el software, pueden tener bugs, yo he visto
muuuuuchiiiiiiiiiiiiiiiiiiiiiiisimos con errores, las vistas indexadas no
los tienen, son más rápidas, por eso te digo que son más adecuadas en este
caso.

Las vistas indexadas tiene problemas en determinadas actualizaciones pero


en
este caso creo que son lo más adecuado, además necesitas programar menos.

Saludos
Miguel Egea

"El principiante" escribió en el mensaje
news:
> Miguel... ahora si fue verdad que me confundí :)))
>
> Como puede un trigger bien implementado equivocarse ? asumiendo que la
> transacción está correctamente configurada, claro.
>
> Para ser mas preciso lo explicare de nuevo :
>
> Al caso que me refiero es terminos generales es a) una tabla de
movimientos
> contables (documento,cuenta,fecha,debito,credito) b)una tabla de


balances
> resumidos (cuenta,ano,mes, totaldebitos,totalcreditos) c) Un trigger


for
> INSERT en la tabla movimientos que actualice la tabla de balances
resumidos
> para la cuenta y mes en cuestion; de igual modo otro trigger para DELETE
con
> igual proposito. (no pienso hacer updates sino, borrar primero e
insertar).
> Son campos redundantes lo se pero, es buscando eficiencia (rapidez) que


lo
> he pensado.
>
> El hecho es que frecuentemente se requieren los balances para distintos
> fines (reportes de comprobacion, estados financieros, control de
> presupuesto, conciliar bancos, etc.). Pregunto si con ese esquema no es
mas
> eficiente que tener cada vez que sumar todos los movimientos de la


cuenta
y
> resumirlos aun sea con una vista indexada ??? O es que hay riesgo de
> inconsistencia con ese esquema ?
>
> Lo mas simple es como digo siempre: Dime cómo lo sueles hacer en tu
sistema
> ? que eso me ayuda a entender pues soy nuevo en esto.
>
>
> Gracias Miguel por tu tiempo
>
>
> "Miguel Egea" wrote in message
> news:
> > depende de la máquina que tengas, del número de registros que tengas y
de
> la
> > estructura que hayas definido puede ser o no adecuado. Las vistas
> indexadas
> > en este caso son muy interesantes, sobrecargan el sistema (en casos
> > parecidos) la mitad que un trigger bien implementado y en este caso te
dan
> > la misma información, por supuesto no se equivocan (como puede pasar
> cuando
> > implementas un trigger).
> >
> >
> > -
> > Miguel Egea Gómez
> > Microsoft SQL-Server MVP
> > Webmaster de PortalSql.Com
> > ¿Te interesa participar en las reuniones
> > del grupo de Usuarios de SQL-Server y .NET
> > Se harán en levante de España, (Alicante o Murcia)?
> >
> >
> >
> > "El principiante" escribió en el mensaje
> > news:%
> > > > Hola o bien podrias tener una tabla resumen o sino tambien podrias
> optar
> > > por
> > > > usar otro tipo de tecnicas como pueden ser las vistas indexadas
> > > >
> > > > Estas ultimas no van a necesitar la utilizacion de Triggers para


su
> > > > mantenimiento :-)
> > >
> > > Como asi.. implicaria recalcular los balances cada vez que se vaya a
> > generar
> > > un listado de balances ?
> > > No seria muy lento ?
> > >
> > > >
> > > > Tambien puedes hacer un SP que sea el que consulta (o arma el
balance)
> > de
> > > > forma selectiva (SELECT).
> > > >
> > > >
> > >
> > > Ok.. pero para por ejemplo generar un balance de comprobacion que
> implica
> > > extraer el balance de TODAS las cuentas, no
> > > seria muy lento si es una tabla de muchos movimientos contables ?
> > >
> > > >
> > > >
> > > >
> > > >
> > > > Maxi
> > > >
> > > > Buenos Aires - Argentina
> > > > Desarrollador .NET 3 Estrellas
> > > > Microsoft User Group (MUG)
> > > > Mail: Maxi_accotto[arroba]speedy.com.ar
> > > >
> > > > Msn Messager:
> > > >
> > > > "El principiante" escribió en el mensaje
> > > > news:
> > > > > Cual seria un buen esquema para conservar balances contables en
una
> > > tabla
> > > > > de
> > > > > balances : por ej. guardar un resumen mensual por cuenta ?
> > > > >
> > > > > Entonces al insertar o borrar un movimiento debo tener un


trigger
> que
> > lo
> > > > > vaya actualizando.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Melissa Ruiz
04/10/2004 - 01:33 | Informe spam
Hola Miguel, yo soy nueva en esto y me interesa mucho lo de las vistas
indexadas que citas. Segun lo que dices y he estado leyendo tambien yo
podria definir por ejemplo una vista que me guarde la existencia
actualizada de los articulos o quizas el resumen de ventas de los articulos
a la fecha o quizas mas el balance actual de los clientes o de los
suplidores .etc. etc. :)))
sin tener que perocuparme nunca por triggers y estar actualizando nada con
sumas y restas.

Ojala que sea asi porque de serlo he descubierto algo sorprendente que me
estaba perdiendo y ni me imaginaba que se podia lograr.

Tambien espero no estar totalmente confundida :))) Espero me aclaren.

Gracias
Melissa


"Miguel Egea" wrote in message
news:
Los triggers, como todo el software, pueden tener bugs, yo he visto
muuuuuchiiiiiiiiiiiiiiiiiiiiiiisimos con errores, las vistas indexadas no
los tienen, son más rápidas, por eso te digo que son más adecuadas en este
caso.

Las vistas indexadas tiene problemas en determinadas actualizaciones pero


en
este caso creo que son lo más adecuado, además necesitas programar menos.

Saludos
Miguel Egea

"El principiante" escribió en el mensaje
news:
> Miguel... ahora si fue verdad que me confundí :)))
>
> Como puede un trigger bien implementado equivocarse ? asumiendo que la
> transacción está correctamente configurada, claro.
>
> Para ser mas preciso lo explicare de nuevo :
>
> Al caso que me refiero es terminos generales es a) una tabla de
movimientos
> contables (documento,cuenta,fecha,debito,credito) b)una tabla de


balances
> resumidos (cuenta,ano,mes, totaldebitos,totalcreditos) c) Un trigger


for
> INSERT en la tabla movimientos que actualice la tabla de balances
resumidos
> para la cuenta y mes en cuestion; de igual modo otro trigger para DELETE
con
> igual proposito. (no pienso hacer updates sino, borrar primero e
insertar).
> Son campos redundantes lo se pero, es buscando eficiencia (rapidez) que


lo
> he pensado.
>
> El hecho es que frecuentemente se requieren los balances para distintos
> fines (reportes de comprobacion, estados financieros, control de
> presupuesto, conciliar bancos, etc.). Pregunto si con ese esquema no es
mas
> eficiente que tener cada vez que sumar todos los movimientos de la


cuenta
y
> resumirlos aun sea con una vista indexada ??? O es que hay riesgo de
> inconsistencia con ese esquema ?
>
> Lo mas simple es como digo siempre: Dime cómo lo sueles hacer en tu
sistema
> ? que eso me ayuda a entender pues soy nuevo en esto.
>
>
> Gracias Miguel por tu tiempo
>
>
> "Miguel Egea" wrote in message
> news:
> > depende de la máquina que tengas, del número de registros que tengas y
de
> la
> > estructura que hayas definido puede ser o no adecuado. Las vistas
> indexadas
> > en este caso son muy interesantes, sobrecargan el sistema (en casos
> > parecidos) la mitad que un trigger bien implementado y en este caso te
dan
> > la misma información, por supuesto no se equivocan (como puede pasar
> cuando
> > implementas un trigger).
> >
> >
> > -
> > Miguel Egea Gómez
> > Microsoft SQL-Server MVP
> > Webmaster de PortalSql.Com
> > ¿Te interesa participar en las reuniones
> > del grupo de Usuarios de SQL-Server y .NET
> > Se harán en levante de España, (Alicante o Murcia)?
> >
> >
> >
> > "El principiante" escribió en el mensaje
> > news:%
> > > > Hola o bien podrias tener una tabla resumen o sino tambien podrias
> optar
> > > por
> > > > usar otro tipo de tecnicas como pueden ser las vistas indexadas
> > > >
> > > > Estas ultimas no van a necesitar la utilizacion de Triggers para


su
> > > > mantenimiento :-)
> > >
> > > Como asi.. implicaria recalcular los balances cada vez que se vaya a
> > generar
> > > un listado de balances ?
> > > No seria muy lento ?
> > >
> > > >
> > > > Tambien puedes hacer un SP que sea el que consulta (o arma el
balance)
> > de
> > > > forma selectiva (SELECT).
> > > >
> > > >
> > >
> > > Ok.. pero para por ejemplo generar un balance de comprobacion que
> implica
> > > extraer el balance de TODAS las cuentas, no
> > > seria muy lento si es una tabla de muchos movimientos contables ?
> > >
> > > >
> > > >
> > > >
> > > >
> > > > Maxi
> > > >
> > > > Buenos Aires - Argentina
> > > > Desarrollador .NET 3 Estrellas
> > > > Microsoft User Group (MUG)
> > > > Mail: Maxi_accotto[arroba]speedy.com.ar
> > > >
> > > > Msn Messager:
> > > >
> > > > "El principiante" escribió en el mensaje
> > > > news:
> > > > > Cual seria un buen esquema para conservar balances contables en
una
> > > tabla
> > > > > de
> > > > > balances : por ej. guardar un resumen mensual por cuenta ?
> > > > >
> > > > > Entonces al insertar o borrar un movimiento debo tener un


trigger
> que
> > lo
> > > > > vaya actualizando.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Salvador Ramos
04/10/2004 - 13:06 | Informe spam
Coincido plenamente con Miguel. Además quiero resaltar que si, por cualquier
motivo tienes un bug en la consulta de la vista indexada, al corregir la
instrucción SELECT solucionas el problema. En cambio, en el caso de los
triggers, posiblemente, te cueste realizar procesos de recálculo para
actualizar correctamente la información.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿ Te interesa participar en las reuniones
del grupo de Usuarios de SQL Server y .NET ?
Se harán en levante de España, (Alicante o Murcia)?

"Miguel Egea" escribió en el mensaje
news:
Los triggers, como todo el software, pueden tener bugs, yo he visto
muuuuuchiiiiiiiiiiiiiiiiiiiiiiisimos con errores, las vistas indexadas no
los tienen, son más rápidas, por eso te digo que son más adecuadas en este
caso.

Las vistas indexadas tiene problemas en determinadas actualizaciones pero


en
este caso creo que son lo más adecuado, además necesitas programar menos.

Saludos
Miguel Egea

"El principiante" escribió en el mensaje
news:
> Miguel... ahora si fue verdad que me confundí :)))
>
> Como puede un trigger bien implementado equivocarse ? asumiendo que la
> transacción está correctamente configurada, claro.
>
> Para ser mas preciso lo explicare de nuevo :
>
> Al caso que me refiero es terminos generales es a) una tabla de
movimientos
> contables (documento,cuenta,fecha,debito,credito) b)una tabla de


balances
> resumidos (cuenta,ano,mes, totaldebitos,totalcreditos) c) Un trigger


for
> INSERT en la tabla movimientos que actualice la tabla de balances
resumidos
> para la cuenta y mes en cuestion; de igual modo otro trigger para DELETE
con
> igual proposito. (no pienso hacer updates sino, borrar primero e
insertar).
> Son campos redundantes lo se pero, es buscando eficiencia (rapidez) que


lo
> he pensado.
>
> El hecho es que frecuentemente se requieren los balances para distintos
> fines (reportes de comprobacion, estados financieros, control de
> presupuesto, conciliar bancos, etc.). Pregunto si con ese esquema no es
mas
> eficiente que tener cada vez que sumar todos los movimientos de la


cuenta
y
> resumirlos aun sea con una vista indexada ??? O es que hay riesgo de
> inconsistencia con ese esquema ?
>
> Lo mas simple es como digo siempre: Dime cómo lo sueles hacer en tu
sistema
> ? que eso me ayuda a entender pues soy nuevo en esto.
>
>
> Gracias Miguel por tu tiempo
>
>
> "Miguel Egea" wrote in message
> news:
> > depende de la máquina que tengas, del número de registros que tengas y
de
> la
> > estructura que hayas definido puede ser o no adecuado. Las vistas
> indexadas
> > en este caso son muy interesantes, sobrecargan el sistema (en casos
> > parecidos) la mitad que un trigger bien implementado y en este caso te
dan
> > la misma información, por supuesto no se equivocan (como puede pasar
> cuando
> > implementas un trigger).
> >
> >
> > -
> > Miguel Egea Gómez
> > Microsoft SQL-Server MVP
> > Webmaster de PortalSql.Com
> > ¿Te interesa participar en las reuniones
> > del grupo de Usuarios de SQL-Server y .NET
> > Se harán en levante de España, (Alicante o Murcia)?
> >
> >
> >
> > "El principiante" escribió en el mensaje
> > news:%
> > > > Hola o bien podrias tener una tabla resumen o sino tambien podrias
> optar
> > > por
> > > > usar otro tipo de tecnicas como pueden ser las vistas indexadas
> > > >
> > > > Estas ultimas no van a necesitar la utilizacion de Triggers para


su
> > > > mantenimiento :-)
> > >
> > > Como asi.. implicaria recalcular los balances cada vez que se vaya a
> > generar
> > > un listado de balances ?
> > > No seria muy lento ?
> > >
> > > >
> > > > Tambien puedes hacer un SP que sea el que consulta (o arma el
balance)
> > de
> > > > forma selectiva (SELECT).
> > > >
> > > >
> > >
> > > Ok.. pero para por ejemplo generar un balance de comprobacion que
> implica
> > > extraer el balance de TODAS las cuentas, no
> > > seria muy lento si es una tabla de muchos movimientos contables ?
> > >
> > > >
> > > >
> > > >
> > > >
> > > > Maxi
> > > >
> > > > Buenos Aires - Argentina
> > > > Desarrollador .NET 3 Estrellas
> > > > Microsoft User Group (MUG)
> > > > Mail: Maxi_accotto[arroba]speedy.com.ar
> > > >
> > > > Msn Messager:
> > > >
> > > > "El principiante" escribió en el mensaje
> > > > news:
> > > > > Cual seria un buen esquema para conservar balances contables en
una
> > > tabla
> > > > > de
> > > > > balances : por ej. guardar un resumen mensual por cuenta ?
> > > > >
> > > > > Entonces al insertar o borrar un movimiento debo tener un


trigger
> que
> > lo
> > > > > vaya actualizando.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#9 Miguel Egea
04/10/2004 - 21:14 | Informe spam
la vista se mantiene sola, como cualquier vista, pero está físicamente
materializada.
En los libros en pantalla hay mucha documentacio´n. Intentaré ahora que
vuelvo a salir de viaje escribir en portalsql.com como conseguir un balance
a través de vistas indexadas.


-
Miguel Egea Gómez
Microsoft SQL-Server MVP
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"El principiante" escribió en el mensaje
news:%
Quiere decir que las vistas indizadas se mantienen actualizadas en linea
cuando se actualiza la tabla origen ? es decir que no son "resueltas" al
momento de referenciarlas en un select ?

Son como si fueran tablas que existen fisicamente no ?


"Miguel Egea" wrote in message
news:
> Los triggers, como todo el software, pueden tener bugs, yo he visto
> muuuuuchiiiiiiiiiiiiiiiiiiiiiiisimos con errores, las vistas indexadas


no
> los tienen, son más rápidas, por eso te digo que son más adecuadas en


este
> caso.
>
> Las vistas indexadas tiene problemas en determinadas actualizaciones


pero
en
> este caso creo que son lo más adecuado, además necesitas programar


menos.
>
> Saludos
> Miguel Egea
>
> "El principiante" escribió en el mensaje
> news:
> > Miguel... ahora si fue verdad que me confundí :)))
> >
> > Como puede un trigger bien implementado equivocarse ? asumiendo que


la
> > transacción está correctamente configurada, claro.
> >
> > Para ser mas preciso lo explicare de nuevo :
> >
> > Al caso que me refiero es terminos generales es a) una tabla de
> movimientos
> > contables (documento,cuenta,fecha,debito,credito) b)una tabla de
balances
> > resumidos (cuenta,ano,mes, totaldebitos,totalcreditos) c) Un trigger
for
> > INSERT en la tabla movimientos que actualice la tabla de balances
> resumidos
> > para la cuenta y mes en cuestion; de igual modo otro trigger para


DELETE
> con
> > igual proposito. (no pienso hacer updates sino, borrar primero e
> insertar).
> > Son campos redundantes lo se pero, es buscando eficiencia (rapidez)


que
lo
> > he pensado.
> >
> > El hecho es que frecuentemente se requieren los balances para


distintos
> > fines (reportes de comprobacion, estados financieros, control de
> > presupuesto, conciliar bancos, etc.). Pregunto si con ese esquema no


es
> mas
> > eficiente que tener cada vez que sumar todos los movimientos de la
cuenta
> y
> > resumirlos aun sea con una vista indexada ??? O es que hay riesgo de
> > inconsistencia con ese esquema ?
> >
> > Lo mas simple es como digo siempre: Dime cómo lo sueles hacer en tu
> sistema
> > ? que eso me ayuda a entender pues soy nuevo en esto.
> >
> >
> > Gracias Miguel por tu tiempo
> >
> >
> > "Miguel Egea" wrote in message
> > news:
> > > depende de la máquina que tengas, del número de registros que tengas


y
> de
> > la
> > > estructura que hayas definido puede ser o no adecuado. Las vistas
> > indexadas
> > > en este caso son muy interesantes, sobrecargan el sistema (en casos
> > > parecidos) la mitad que un trigger bien implementado y en este caso


te
> dan
> > > la misma información, por supuesto no se equivocan (como puede pasar
> > cuando
> > > implementas un trigger).
> > >
> > >
> > > -
> > > Miguel Egea Gómez
> > > Microsoft SQL-Server MVP
> > > Webmaster de PortalSql.Com
> > > ¿Te interesa participar en las reuniones
> > > del grupo de Usuarios de SQL-Server y .NET
> > > Se harán en levante de España, (Alicante o Murcia)?
> > >
> > >
> > >
> > > "El principiante" escribió en el mensaje
> > > news:%
> > > > > Hola o bien podrias tener una tabla resumen o sino tambien


podrias
> > optar
> > > > por
> > > > > usar otro tipo de tecnicas como pueden ser las vistas indexadas
> > > > >
> > > > > Estas ultimas no van a necesitar la utilizacion de Triggers para
su
> > > > > mantenimiento :-)
> > > >
> > > > Como asi.. implicaria recalcular los balances cada vez que se vaya


a
> > > generar
> > > > un listado de balances ?
> > > > No seria muy lento ?
> > > >
> > > > >
> > > > > Tambien puedes hacer un SP que sea el que consulta (o arma el
> balance)
> > > de
> > > > > forma selectiva (SELECT).
> > > > >
> > > > >
> > > >
> > > > Ok.. pero para por ejemplo generar un balance de comprobacion que
> > implica
> > > > extraer el balance de TODAS las cuentas, no
> > > > seria muy lento si es una tabla de muchos movimientos contables ?
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Maxi
> > > > >
> > > > > Buenos Aires - Argentina
> > > > > Desarrollador .NET 3 Estrellas
> > > > > Microsoft User Group (MUG)
> > > > > Mail: Maxi_accotto[arroba]speedy.com.ar
> > > > >
> > > > > Msn Messager:
> > > > >
> > > > > "El principiante" escribió en el mensaje
> > > > > news:
> > > > > > Cual seria un buen esquema para conservar balances contables


en
> una
> > > > tabla
> > > > > > de
> > > > > > balances : por ej. guardar un resumen mensual por cuenta ?
> > > > > >
> > > > > > Entonces al insertar o borrar un movimiento debo tener un
trigger
> > que
> > > lo
> > > > > > vaya actualizando.
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


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