como se usa la herencia ??????

From: "Roberto A(dot)" <gedeon56(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: como se usa la herencia ??????
Date: 2008-08-14 22:06:22
Message-ID: 9ef4fe500808141506i41570490n1337f9c8eb181af0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Roberto A.

Hola a todos por favor alguien responda
Mi problema es el siguiente. Tengo una base de datos que va relacionada con
una inmobiliaria que tiene una tabla inmueble que hereda sus atributos a
otras tablas como ser casa, casa de campo , departamento, etc
esta es la base de datos.

CREATE TABLE taza( idtaza serial primary key,
taza float,
fecha_reg date,
numtaza int
);

CREATE TABLE zona( idzona serial primary key,
area varchar,
nom_area varchar,
nombre varchar,
area_primaria varchar,
);

CREATE TABLE inmueble( idinmueble serial primary key,
direcion varchar,
superficie float,
construcion float,
costo float,
otros varchar,
oferta_dem varchar,
fecha_reg date,
disponible boolean,
agua boolean,
luz boolean,
gas_domicilio boolean,
promotor varchar,
idtaza int,
comision int,
ci int,
rsocial int,
idzona int,
foreign key(idtaza) references taza(idtaza),
foreign key(idzona) references zona(idzona),
);

CREATE TABLE casa( garaje int,
amoblado boolean,
picina int,
baño int,
dormitorios int,
sala int,
lavanderia int,
tienda int,
pisos int,
patio int,
cocina int,
terraza int,
comedor int
)inherits(inmueble);

CREATE TABLE casa_campo(garaje int,
amoblado boolean,
independiente boolean,
picina int,
baño int,
dormitorios int,
sala int,
lavanderia int,
pisos int,
patios int,
cocina int,
terraza int,
comedor int
)inherits(inmueble);

CREATE TABLE departamento(amoblado boolean,
baño int,
dormitorios int,
sala int,
lavanderia int,
pisos int, --revisar
cocina int,
terraza boolean
)inherits(inmueble);

los inserts en las tablas como ser casa, casa de campo , departamento, etc
no genera ningun problemas los ids se generan de forma correcta hago un
select a la tabla inmueble y me muestra todas las tuplas que se han
ingresado en las tablas hijas los problemas son los siguientes.

1.- Que al hacer un insert en las tablas hijas no respetan la integridad
referencial que tiene la tabla padre po ejemplo en una de las tablas hijas
puedo insertar una tupla que tenga un id de zona que no exista en mi tabla
zona

2.- Al momento de hacer un insert en cualquiera de las tablas hijas

insert into casa values(nextval('casa_idinmuelbe_seq'),1,............,etc);

insert into casa values(nextval( 2 ,1,............,etc);

al cambiar la sentencia " nextval('casa_idinmuelbe_seq') " que pertenece
a la columna de la llave primaria por un id ya existente

la insercion se realiza sin ningun problema teniendo dos inmuebles con el
mismo id en mi tabla inmueble.

si alguien me puede ayudarme quiero saber cual es mi error o hay algo que
estoy haciendo mal al momento de crear las tablas no se como puedo
solucionar este problema ..

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-08-14 22:10:31 Re: como se usa la herencia ??????
Previous Message Milca 2008-08-14 21:50:40 problemas con el servidor postgresql