Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group