¿Cuál es la mejor práctica para definir la generalización entre dos tablas de tal forma que se hereden los atributos de la tabla padre?

From: Carlos Beltran Villamizar <carlos(dot)beltran(at)datalog(dot)com(dot)co>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: ¿Cuál es la mejor práctica para definir la generalización entre dos tablas de tal forma que se hereden los atributos de la tabla padre?
Date: 2009-10-15 16:19:33
Message-ID: 1255623573.3826.11.camel@cbeltran
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Señores de la lista buenos días.

Estoy rediseñando un sistema distribuído que tiene múltiples servers
masters replicando a un server central y sincronizando a los demás
servers las tablas maestras. La Unidad de gestión es la clase que
identifica donde se hizo el insert de las clases en répica y
sincronización. Así:

CREATE TABLE UnidadGestion
(
IdUnidadGestion serial,
PRIMARY KEY (IdUnidadGestion),
UnidadGestionNombre character varying(60) NOT NULL,
UnidadGestionAbreviado character varying(3) NOT NULL,
UnidadGestionActiva boolean DEFAULT true
);

CREATE TABLE Tercero
(
IdUnidadGestionFuente integer REFERENCES UnidadGestion
(IdUnidadGestion) NOT NULL,
IdTercero bigserial,
PRIMARY KEY (IdUnidadGestionFuente, IdTercero),
-- Otros atributos
TerceroActivo boolean DEFAULT true
);

CREATE TABLE Sucursal
(
IdUnidadGestionFuente integer REFERENCES UnidadGestion
(IdUnidadGestion) NOT NULL,
IdSucursal bigserial,
PRIMARY KEY (IdUnidadGestionFuente, IdSucursal),
IdUnidadGestionTercero integer NOT NULL,
IdTercero bigint NOT NULL,
FOREIGN KEY (IdUnidadGestionTercero, IdTercero) REFERENCES
Tercero(IdUnidadGestionFuente, IdTercero),
-- Otros atributos
SucursalActiva boolean DEFAULT true
);

Como se nota existe asociación entre Tercero y Sucursal con
UnidadGestion. También existe asociación de Sucursal con Tercero. Sin
embargo el modelo se plantea como una generalización en UML. ¿Cuál es la
mejor práctica para definir la generalización entre Sucursal y Tercero
de tal forma que al acceder a una sucursal acceda a los atributos de su
respectivo tercero?

Gracias de antemano.

Desde Colombia. Carlos Beltrán V.

Nota. Por error había enviado este mail a la lista general.

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message liss RR 2009-10-15 18:18:37 Encoding
Previous Message Yadisnel Galvez Velazquez 2009-10-15 15:53:52 Sobre llaves primarias y triggers