Re: Semi OT: BD e Integridad Referencial

From: Calabaza <calalinux(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Semi OT: BD e Integridad Referencial
Date: 2008-04-09 15:12:13
Message-ID: 958993320804090812h4f350fcep9c401605b4c8b0db@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 9/04/08, Reynier Perez Mira <rperezm(at)uci(dot)cu> escribió:
> Hola lista:

Hola!

> Disculpen el mensaje pero me ha surgido una duda que espero me puedan aclarar por aquí.
> El problema.
> Tengo tres tablas: categorías, subcategorías y licencias. Entre las tablas categorías y subcategorías existe una relación 1:m por lo que la llave primaria (PK) de la tabla categorías pasa a la tabla subcategorías como llave foránea (FK). Entre las tablas subcategorías y licencias existe una relación 1:m por lo que la PK de la tabla subcategorías pasa como FK a la tabla licencias. Las reglas en todos los casos de UPDATE y DELETE las he puesto de la siguiente forma: ON UPDATE: CASCADE, ON DELETE: SET NULL.
>
> La pregunta:

> ¿Qué pasa con los registros de la tabla licencias si elimino un registro que
> tenga algo asociado en la tabla subcategorías

Pues nada, solamente desaparece tu registro de la tabla licencias.
No pasa nada con la tabla subcategorias.

> y lo mismo para la tabla categorías?

Postgresql en la columna foreing key (o sea el pk de categoria) de la
tabla subcategoria pondrá null.

> ¿Se quedan en al aire los registros?

Si, practicamente si.

> Como manejan ustedes este detalle

Y a según que es lo que quieres hacer, yo particularmente utilizo,
ON UPDATE RESTRICT, ON DELETE RESTRICT, porque no me parece integra
una BD que ande teniendo registros cuyos FK apunten a null,
pero hay casos en los que necesitas que eso sea así y pues los tienes
que dejar así.

Me parece que en tu caso, no creo que te guste tener una licencia que
no tenga categoria o subcategoria verdad?

Puedes darte una vuelta por:
http://www.postgresql.org/docs/8.3/interactive/ddl-constraints.html#DDL-CONSTRAINTS-FK

Si quieres te paso el script con toda las pruebas que hice.

> Salu2 y gracias por adelantado

Cuando gustes!
--
§~^Calabaza^~§ from Villa Elisa, Paraguay
----------------
A hendu hína: Helloween - 07 - How Many Tears
http://foxytunes.com/artist/helloween/track/07+-+how+many+tears

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message MIGUEL CANCHAS 2008-04-09 15:43:49 RE: porque el text
Previous Message Sebastián Villalba 2008-04-09 15:09:12 Re: Semi OT: BD e Integridad Referencial