[Pgsql-ayuda] Herencia

From: Roberto Andrade Fonseca <randrade(at)abl(dot)com(dot)mx>
To: pgsql-ayuda <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx>
Subject: [Pgsql-ayuda] Herencia
Date: 2004-01-08 23:55:28
Message-ID: 1073606134.1838.4.camel@isadora
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola:

Un amigo, que por razones curiosas no puede postear a la lista, me pidió que enviara este mensaje.

Por favor respondan a la lista, él si puede leerlos:

----------------------------------

Tengo la siguiente situación:

Una clase 'contacto', que guarda los detalles comunes a cualquier
contacto, y varias clases derivadas, como 'abogado', que guardan los
detalles especificos a cada una. Estas clases se van a hacer
persistentes en PostgreSQL.

Tengo dos opciones para implementar esto:

1) Usar la herencia de Pg.

create table contacto(nombre text, direccion text);

create table abogado(casos int) inherits (contacto);

Ventajas:
- Es fácil de usar desde el código. Hago inserts en abogado y
se ven en contacto.
- Tengo una herramienta (Pymerase http://pymerase.sf.net) que genera
este esquema y el código python para el acceso a la base de forma
automática desde el diagrama UML.

2) Usar una relación 1-1 y crear vistas y reglas:

create table contacto(nombre text, direccion text, id int);

create table abogado_detalle(id int references(contacto), casos int);

create view abogado as select c.nombre, c.direccion, a.casos from
contacto c, abogado a where c.id=a.id

y alguna regla para los inserts y los updates. (¿Se nota que no me se la
sintaxis para las vistas?)

Ventajas:
- Si no me equivoco en la vista y las reglas, es tán fácil de usar
como el anterior.
- Es (¿más?) estandar.

Lo malo de 2) es que o pierdo el uso de la herramienta, o tengo que
modificarla. Lo malo de 1) es que pierdo portabilidad. Estoy tentado a
irme por 1), pero necesito saber si hay alguna otra cosa que tomar en cuenta.

--
Rodrigo Gallardo
PGP Key ID: ADC9BC28
Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28
-------------------------- Fin del mensaje en cuestión --------------
--
Saludos

Roberto Andrade Fonseca
Microsoft Certified Solitaire Player

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Bernal 2004-01-09 09:45:20 [Pgsql-ayuda] migrar desde 7.0 a 7.2
Previous Message Dionisio Ruiz de Zarate 2004-01-08 22:50:41 [Pgsql-ayuda] Re: [Pgsql-ayuda] eñes y tildes