Bases de Datos > SQL Server
Integridad Referencial
El Loco Power:
Una PRegunta mis queridos programadores, analistas, aficionados y amigos todos... tengo un dilema y es la sgte: ;)
Si yo tengo una tabla maestra, en la cual contiene datos que alimentara a una cabecera(transaccional), de tal manera la tabla maestra se relaciona con la cabecera. Entonces supongamos que en la tabla cabecera tengo mucha informacion que tiene como atributo una llave de la tabla maestra.
Ahora la pregunta es, deseo eliminar un dato que pertenece a la tabla maestra y dicho dato se relaciona con muchos registros en la cabecera, cual seria la solución o criterio para quitar ese registro(de la tabla maestra).
Gracias espero su pronta respuesta. :lightsabre:
lencho:
normalmente a esas relaciones les llaman Maestro-Detalle, tu definicion me confundio algo (Maestro-Cabecera) parecen lo mismo.
Si lo que realmente querej es eliminar, entonces tienes que hacerlo en orden inverso de lo que insertaste.
BYTE.
A_LEX:
Hola,
Borrado en cascada no te funcionaria?
Hasta Pronto.
El Loco Power:
Bueno, para dar un ejemplo rapido...un cliente realiza varias transacciones o compras dentro de una bodega y estas se registran en la bd.Luego de un tiempo el administrador decide eliminar al cliente(teniendo en cuenta que el cliente tiene registrado muchas compras) pero a la vez no desea perder ninguna de sus compras hechas puesto que lo necesita como historial. Ahora la pregunta es.. Como hacer para que el cliente no figure mas en la tabla maestra pero sin perder sus transacciones hechas en su historial de compras. Ahora Normalmente lo que se haria en primer caso es lo sgte:
Solución(1):
-Actualizar con null el codigo del cliente en la tabla de compras y luego eliminar el cliente de la tabla maestra
Desventaja(1):
-Que al momento de realizar un reporte de las compras con respecto al pasado, no figurara mas el dato del cliente, por lo tanto no se sabra quien realizo la compra.
lencho:
maneja un campo estado en la tabla cliente, el cual tenga 1 cuando este habilitado y 0 cuando lo elimines.
BYTE.
Navegación
[#] Página Siguiente
Ir a la versión completa