Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

relacionar o no

Estas en el tema de relacionar o no en el foro de Bases de Datos General en Foros del Web. hola tengo una duda con respecto a las bases de datos relacionales. que es mejor: establecer la relacion en una tabla de manera que por ...
  #1 (permalink)  
Antiguo 28/10/2010, 19:27
Avatar de Tony Manero  
Fecha de Ingreso: diciembre-2002
Ubicación: en la disco
Mensajes: 34
Antigüedad: 21 años, 11 meses
Puntos: 0
relacionar o no

hola tengo una duda con respecto a las bases de datos relacionales. que es mejor:

establecer la relacion en una tabla de manera que por ejemplo por codigo yo elimino un registro padre y automaticamente se elimine un registro hijo en otra tabla. o

al eliminar un registro padre eliminar de manera manual todos los registros hijos de otra tabla mediante codigo.

se entendio?
  #2 (permalink)  
Antiguo 29/10/2010, 05:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: relacionar o no

Hola. Tal y como lo has planteado, logicamente, es la primera opcion la mejor.

Pero planteandolo de forma mas general, depende del tipo de base de datos (mysql, access, etc) a veces es mejor una forma u otra.

Desde mi punto de vista, en un 80% es mejor relacionar.

Un saludo.
  #3 (permalink)  
Antiguo 29/10/2010, 08:48
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: relacionar o no

Buenos días Tony Manero:

Cita:
al eliminar un registro padre eliminar de manera manual todos los registros hijos de otra tabla mediante codigo.
Creo que hay un detalle en cuanto al concepto que estás manejando. si estableces una relación con eliminación en cascada entonces si eliminas un padre automáticamente se eliminan todos los hijos. Si no tienes habilitada la eliminación en cascada NO PODRÁS ELIMINAR UN PADRE SI TIENE HIJOS ASIGNADOS. o lo que es lo mismo, primero tendrías que eliminar todos los hijos para poder eliminar en un segundo momento al registro padre (el error está en el orden en que manejas las eliminaciones).

En lo particular no suelo usar la eliminación en Cascada, pero depende de las necesidades que tengas.

El mayor problema que le veo es por ejemplo si haces una eliminación "erronea" es decir, si eliminas un registro que no debía ser borrado. Supongamos que tienes las tablas Clientes, Facturas y Detalle Facturas donde un cliente tienes una o más facturas y una Factura puede tener uno o más detalles de factura. Supongamos que por "error" eliminas a un cliente, si tienes habilitada la eliminación en cascada también eliminarías todas las facturas asignadas a ese cliente y todos los detalles asignados a esas facturas.

En caso de no tener habilitada la eliminación en cascada si se intenta eliminar un cliente que tenga al menos una factura marcaría un error y sólo podrían eliminarse aquellos clientes que no tuvieran facturas asignadas.

Te repito, es cuestión de necesidades, incluso puedes manejar un esquema de eliminación mixto.

Saludos
Leo.
  #4 (permalink)  
Antiguo 29/10/2010, 10:12
Avatar de Tony Manero  
Fecha de Ingreso: diciembre-2002
Ubicación: en la disco
Mensajes: 34
Antigüedad: 21 años, 11 meses
Puntos: 0
Respuesta: relacionar o no

gracias por las respuestas

Etiquetas: relacionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:20.