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

problemas con delete

Estas en el tema de problemas con delete en el foro de Bases de Datos General en Foros del Web. tengo un gran problema con ON DELETE CASCADE tengo estoy haciendo un sistema de inventarios de equipo de computo y tengo las tablas de equipos, ...
  #1 (permalink)  
Antiguo 29/11/2008, 13:38
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
problemas con delete


tengo un gran problema con ON DELETE CASCADE
tengo estoy haciendo un sistema de inventarios de equipo de computo y tengo las tablas de equipos, hardware, sofware en la que indico que un equipo tiene mas de un hardware, ya inserto n hardware a un solo equipo, mi problema es al eliminarlos porque me manda un error de integridd referencial, la cuestion es que cuando elimine el equipo a su vez elimine en cascada todo los hardware que hacen referencia al equipo alguien puede ayudarme??

tabla equipo contiene= clave_equipo, clave_hardware
tabla hardware= clave hardware, clave_equipo
mi BD esta en SQL SERVER 2005
  #2 (permalink)  
Antiguo 29/11/2008, 18:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problemas con delete

A lo que se ve, el problema no es de l uso del ON DELETE CASCADE, sino de diseño conceptual y su implementación física:
- No puedes pretender borrar en cascada los registros del hardware cuando borras un equipo, porque en la realidad en el equipo sólo hay un componente de cada tipo de hard puesto, pero cada tipo pieza de hard puede aparecer en muchos equipos. Lo que tienes es una cardinalidad 1:N donde la tabla HARDWARE es una entidad fuerte y equipo es una débil. No cortas la fuerte al eliminar la debil, eliminas la debil al eliminar la fuerte. En otras palabras, estás realizando al revés el proceso.
- Lo que te está faltando es la definición de una tabla EQUIPOS_COMPONENTES, que realice el vínculo, ya que en la realidad la tabla EQUIPO debería contener cosas como el numero de serie, fecha de fabricación, datos de verificación, etc. No los componentes, que pueden variar dentro de una misma serie en un modelo de PC.
- Por otro lado, desde el punto de vista del análisis de sistemas (sea estructurado o bajo el paradigma objetos), nunca puedes eliminar una instancia de un equipo que haya salido por venta, porque esa venta siembre debe quedar registrada, como también la descripción de lo fabricado. Lo máximo que puedes hacer es trasladarlo a un datawarehose. Tampoco se pueden eliminar las instancias de hardware, por más que se hayan dejado de fabricar, simplemente porque figuran en alguna parte de los registros de los equipos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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:33.