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
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 |