Re: Problema con Entidad Relación

From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: Marcelo Retamal <mretamal(at)cmet(dot)net>
Cc: Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problema con Entidad Relación
Date: 2006-08-26 13:36:03
Message-ID: Pine.LNX.4.64.0608260752080.26034@bugs.unl.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, 25 Aug 2006, Marcelo Retamal wrote:

> Hola Lista, tengo un problema: aca en la of, tenemos una discución por una diseño entidad relación, un compañero propuso un diseño medio descabellado y para mal de nosotros lo llevó a la base postgres y lo agüantó. Etas son las tablas:
> stelevision(
> contrato,
> servicio,
> registro,
> sucursal,
> etc...,
> llave primaria (contrato,servicio,registro,sucursal)
> );
>
> valor_paquete [que es una relación](
> sucursal [referencia de la tabla sucursal],
> servicio [que es el mismo campo que está arriba y llave foranea de la tabla servicio],
> paquete [referencia de la tabla paquete],
> etc...,
> llave primaria (sucursal,servicio,paquete)
> );
>
> rvalor_paquete_stelevision(
> contrato,
> servicio,
> registro,
> sucursal
> paquete,
> llave primaria (contrato,servicio,registro,sucursal,paquete)
> );
> constraint_1 (contrato,servicio,registro,sucursal) referenciado de stelevision (contrato,servicio,registro,sucursal);
> constraint_2(sucursal,servicio,paquete) referenciado de valor_paquete (contrato,servicio,registro,sucursal,paquete);
> Nota: el DELETE está en restrict y el Update está en cascade.

A mi en lo personal no me gusta para nada este tipo de referencias, porque
generan redundancia, y muchas veces son campos de texto, lo cual es mas
dificil de unir por el motor (ni que hablar de como te van a quedar las
consultas con un JOIN sobre 4 campos :-)).

Para mi, en la practica lo mejor es tener en cada tabla un campo SERIAL
que sea PRIMARY KEY. Si despues hay otra llave primaria, la definis como
se definen en SQL: UNIQUE, NOT NULL, y le pones un indice.

--
21:50:04 up 2 days, 9:07, 0 users, load average: 0.92, 0.37, 0.18
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Aguada 2006-08-26 13:49:38 FUERA DE TOPICO - DILEMA PRACTICO
Previous Message Linder Poclaba 2006-08-26 00:03:39 Re: Error de Conceptos setof