Re: Criterios de diseño

From: Ricardo Ignacio Mercado Araneda <rmercado(at)dportales(dot)cl>
To: Gustavo Maximiliano Cortez <patesi(at)gmail(dot)com>
Cc: Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Criterios de diseño
Date: 2005-02-16 16:33:02
Message-ID: 1108571581.29852.6.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El mié, 16-02-2005 a las 11:47, Gustavo Maximiliano Cortez escribió:
> Muchachos,
> Tengo duda a la hora de plantear el diseño de una base de datos.
> Yo se que esto tiene que ver mas que nada, con los criterios de DBA,
> pero como yo no tengo mucha experiencia, me baso en el diseño planteado
> por gente con mas experiencia.
> Un profesor mio de la Universidad, considera que ningun registro
> (por ejemplo de empleados o clientes) debe ser eliminado de la base de
> datos, es decir se deberia colocar un atributo como bandera que indique
> si el registro (de empleados o clientes) debe o no aparecer en el
> sistema. Por ejemplo, en la interfaz de usuario si hay un boton que dice
> "eliminar", no significa que elimine el registro de la base de datos,
> sino que simplemente le de un valor al atributo ya sea 0 o 1 para que
> "simulara" que el registro esta eliminado.
> Desde mi punto de vista (y aclaro que no tengo mucha experiencia)
> considero que de esta manera estoy haciendo que la base de datos cresca
> siempre. Es decis, que no hay posibilidad de disminuir su tamaño
> eliminando registros desde una interfaz de usuario. Y me parece algo
> poco elegante, ya que en cada consulta para mostrar el listado de
> registros (por ejemplo de empleados o clientes), deberia hacer el contro
> de si el atributo puesto como bandera tiene el valor 1 o 0 segun se haya
> eliminado o no.
> Asi que mi pregunta es, cual de los dos metodos es el mas
> conveniente? Obviamente me refiero a registros que guarden clientes,
> empleados o algo por el estilo, en el que uno puede llegar a pensar:
> ¿Para que eliminar el cliente si en una de esas puede volver a
> comprarnos? Claro, pero si algun dia resulta necesario? O por cualquier
> causa, el cliente ya no es mas cliente nuestro? Que es mas conveniente,
> usar una bandera o eliminarlo completamente de la base de datos?
> Saludos. Gracias por la paciencia.
>
> Gustavo Cortez
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html

Me parece que esto depende principalmente de las reglas de negocio más
que de Postgresql o de cualquier gestor de bases de datos que estes
usando. Es muy probable que aquellos clientes que desees borrar tengan
registros de compras por lo que seguramente el modelo deberá tener en
cuenta ciertas reglas de integridad que no permitan dejar transacciones
colgando. Creo que lo más conveniente es dejar al cliente que borrarlo,
ahora puedes agregar un estado (flag) tal como lo señala tu profesor,
que te permita controlar en tu aplicacion a aquellos clientes que no
desees considerar en tus transacciones. Por problema de espacio no te
preocupes, estos gestores de bases de datos soportan mucho.

Suerte
--
RICARDO IGNACIO MERCADO ARANEDA
Dirección de Sistemas
Organización Educacional Diego Portales
Fono 41-910252 Anexo 225 CONCEPCIÓN
E-Mail : rmercado(at)dportales(dot)cl
MSN : rmercado23(at)hotmail(dot)com

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mauricio Zea (Gmail) 2005-02-16 16:38:03 Re: [pgsql-es-ayuda] Criterios de diseño
Previous Message Hugo Gamarra 2005-02-16 16:26:36 RE: [pgsql-es-ayuda] Criterios de diseño