Tablas reacionadas

Que tal experto quisiera que me orientaras para saber como puedo eliminar en cascada con tablas relacionadas, he buscado información y encontré que se puede eliminar usando tiggers o con relaciones pero la verdad no se ni como comenzar
Y abusando de tu ayuda quisiera también saber como puedo imprimir las tablas relacionadas en informes, son 5 tablas las que relaciono
De antemano te agradezco

1 Respuesta

Respuesta
1
Para eliminar registros en cascada puedes hacerlo de dos formas:
1. En tu modelo de base de datos, debes tener identificadas para cada tabla las llaves primarias y relacionarlas con respecto a las demás tablas. Ej:
Tabla Clientes: Id, Código, Nombre
Tabla Facturas: IdCliente, Factura, Fecha, Valor
La tabla Clientes debe estar indexada por Id como llave primaria
La tabla Facturas debe estar indexada por IdCliente como llave Regular
1.1. En el proyecto vas a la página Data, seleccionas la base de datos y haces clic en Modificar. Esto te lleva al diseñador de la base de datos. Ahí seleccionas las tablas y te desplazas al final de cada tabla donde se muestran los índices.
Para crear la relación siguiendo el ejemplo, haces clic en el índice Id de Clientes y lo arrastras hasta el Indice IdCliente de la tabla Facturas, VFP crea la relación entre las tablas representada por una línea de conexión.
1.2. En el menú Database selecciona la opción Edit Referencial Integrity para abrir la integridad referencial de la base de datos. VFP presenta una tabla con todas las relaciones creadas.
Seleccionas la página Rules for deleting. Y haces clic en el option group Cascade, en la tabla se refleja el cambio. A partir de este punto, cada vez que se elimine un Cliente, la base de datos eliminará en forma automática todas las facturas de ese cliente.
2. Si no manejas un modelo de base de datos o deseas hacerlo por código sin recurrir a la integridad referencial que maneja la base de datos, puedes hacer lo siguiente:
2.1 Cada vez que vayas a borrar un registro (ej. Clientes), en el botón Borrar debes tener un código que busque los registros relacionados (Facturas del cliente en cuestión) y eliminarlos, una vez realizada esta acción se elimina el registro de la tabla Padre (Clientes).
Este es un ej. algo burdo, pues deben existir validaciones adiconales, como el hecho de que las factura deben estar canceladas. Además se debe tener en cuenta que una tabla Padre puede estar relacionada con más de una tabla. Ej. Clientes con Facturas y Cliente con Pagos, etc.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas