RE: Duda con las secuencias

From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Reynier Perez Mira <rperezm(at)uci(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: Duda con las secuencias
Date: 2008-10-11 07:21:03
Message-ID: 309564.63945.qm@web63708.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- El sáb 11-oct-08, Reynier Perez Mira <rperezm(at)uci(dot)cu> escribió:

> De: Reynier Perez Mira <rperezm(at)uci(dot)cu>
> Asunto: RE: [pgsql-es-ayuda] Duda con las secuencias
> A: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
> Cc: pgsql-es-ayuda(at)postgresql(dot)org
> Fecha: sábado, 11 octubre, 2008, 12:13 am
> Gracias a todos por sus respuestas. Alvaro tendré en cuenta
> lo que me dices y probaré el uso de las secuencias desde la
> aplicación lo que eso me deberá llevar un mayor tiempo.
>
> Un saludo
> Ing. Reynier Pérez Mira
> Grupo de Soporte al Desarrollo - Dirección Técnica IP

Estimado amigo Reynier Perez.

Hay una cancion que dice depende, todo depende, segun como se mire todo depende....

Por el unico motivo que usaria llevar una secuencia desde la aplicacion y no lo hago, seria que tuviera la necesidad de un numerador continuo, como los formularios de facturaciond, en los que llevo diferentes seriales en un mismo campo, una para credito, otra para contado y asi sucesivamente para cada tipo de documento, de esta forma no dependo de un campo serial.
, aun asi desarrolle el tema con una funcion pl/pgsql y no desde la aplicacion, asi mantengo la logica en la base de datos.

Incluso en mi caso se puede dar que dos documentos distintos puedan depender de un mismo serial y otros no, para lo cual entonces, hago
esto

Tipo Documentos

id_tipo_doc serial
documento, texto
etc,
etc,
id_numerador

Numerador
id_numerador, serial
serie_doc,
numero_doc

Una consulta con un join y reglas de update e insert me resuelve todo el problema.

select id_tipo_doc
documento,serie_doc,numero_doc from tipo_documentos inner join
numerador on tipo_documentos.id_numerador=numerador.id_numerador

la regla par update.

Una funcion pl/pgsql, que con un parametro para pasar tipo_doc, llama a la consulta con where id_tipo_doc=parametro y con un bolqueo suma uno a numero_doc y retorna el mismo para ser tomado por la aplicacion que va a imprimir el documento con ese numero, puesto que en los cabezales de los documentos siempre lo actualizo con.

numero_doc=obj.execute "select from la_funcion(tipo_doc)"

Si este no es el caso, segui con seriales no te van a molestar, antes de conocer el "tipo serial", era una tranza el trabajo que debias tomarte, ahora es muy facil, pues antes creabas el serial y a un campo entero o entero largo en la opcion default tenias que escribir una sentencia en default para que lo actualizara segun la secuencia creada, ahora el tipo serial no hace mas que hacer el trabajo por ti, en si mismo no es otro tipo de campo.

El problema en este caso de usar serial es que si editas un registro en modo insercion desde la aplicacion y te arrepentis no actualizandolo, el serial aumento y te embromas, por que el proximo documento por ejemplo seria 1,2,3,5 habiendo desaparecido el 4.

Bien estimado espero te sirva esto, si no gtalk y te paso los ejemplos de mi aplicacion, el cual tiene un detalle a mejorar en algun momento, pero que te puede servir de base para lo que queres.

Si el problema es no abusar de seriales, no te preocupes para eso estan.

Pero como dijo Alvaro, trata de que verificar que se eliminan cuando elimines la/s tabla/s que lo usan.

Un abrazo fraterno
Saluda Atte.
Gabriel Colina

____________________________________________________________________________________
Premios MTV 2008¡En exclusiva! Fotos, nominados, videos, y mucho más! Mira aquí http://mtvla.yahoo.com/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Hermes Colina Zambra 2008-10-11 07:23:50 Re: PGDay Rio de la Plata
Previous Message Reynier Perez Mira 2008-10-11 03:13:05 RE: Duda con las secuencias