estuvee leyendo algunos post y no logre dar con la informacion y me surgen las siguientes dudas
1-. cuando se inserta el registro en la tabla padre y luego al insertar un registro en la tabla hija con el id(fk) q referencia a la tabla padre el valor que insertas en la tabla hija se duplica en la padre? o hay q agregar alguna reestriccion?
2- en la especializacion cuando es disjunta total que se agrega el discriminante x tipo? ese atributo es que? que se hace con ese atributo una restriccion una funcion?
es primera vez q manejo la herencia en la base de datos y pues mas o menos entendi su semantica. de igual forma adjunto el codigo para que vean que si he trabajado sobre el tema.. acepto sugerencias =)
Código SQL:
Ver original
CREATE TABLE pieza ( modelo CHARACTER VARYING(20) NOT NULL, nombre CHARACTER VARYING(15), fabricante CHARACTER VARYING(15), CONSTRAINT pk_modelo PRIMARY KEY (modelo) ) WITH ( OIDS=FALSE ); ALTER TABLE pieza OWNER TO postgres; CREATE TABLE disco_duro ( modelo CHARACTER VARYING(20) NOT NULL, -- Inherited from table pieza: nombre character varying(15), -- Inherited from table pieza: fabricante character varying(15), capacidad text, puerto text, CONSTRAINT pk_modelo_disco_duro PRIMARY KEY (modelo), CONSTRAINT fk_modelo_disco_duro_pieza FOREIGN KEY (modelo) REFERENCES pieza (modelo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE ) INHERITS (pieza) WITH ( OIDS=FALSE ); ALTER TABLE disco_duro OWNER TO postgres; CREATE TABLE tarjeta_madre ( modelo CHARACTER VARYING(20) NOT NULL, -- Inherited from table pieza: nombre character varying(15), -- Inherited from table pieza: fabricante character varying(15), socket text, tipo_memoria text, max_tamano text, CONSTRAINT pk_modelo_tarjeta_madre PRIMARY KEY (modelo), CONSTRAINT fk_modelo_tarjeta_madre_pieza FOREIGN KEY (modelo) REFERENCES pieza (modelo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE CASCADE ) INHERITS (pieza) WITH ( OIDS=FALSE ); ALTER TABLE tarjeta_madre OWNER TO postgres;