No se deben definir relaciones de este tipo en un sistema de bases de datos, debido a su complejidad a la hora de su mantenimiento, por este motivo se debe transformar este tipo de relación es dos interrelaciones de tipo 1: n, empleando para ello una tabla que denominaremos puente y que estará formada por las claves de ambas tablas. Esta tabla puente debe contener una única clave compuesta formada por los campos clave de las tablas primeras.
| Código Empleado | Empleado | Código Puesto | Puesto |
| 103 | Juan | 52 | Comercial |
| 105 | Luisa | 73 | Administrativo |
| 251 | Martín | ||
| 736 | Ana María | ||
| Código Empleado | Código Puesto | ||
| 103 | 52 | ||
| 103 | 73 | ||
| 105 | 73 | ||
| 251 | 52 | ||
| 736 | 52 | ||
| 736 | 73 | ||
Ahora existe una relación 1: n entre Empleados y Tabla Puente y otra relación 1: n entre Puestos y Tabla Puente ya que un empleado posee varios códigos de empleado en la tabla puente pero cada elemento de la tabla puente pertenece a un único empleado.
Por otro la un puesto de trabajo posee varios elementos relacionados en la tabla puente, pero cada elemento de la tabla puente está relacionado con un único elemento de la tabla puestos.
A la hora de establecer las interrelaciones existentes en un sistema de bases de datos nos podemos encontrar dos problemas:
Ambos casos pueden suponer un grabe problema si definimos una relación con integridad referencial y decimos eliminar en cascada (al eliminar una clave de la tabla A se eliminan los elementos relacionados en la tabla B). Supongamos la relación recursiva existen en la relación Empleado y Supervisor (ambos son empleados de la empresa). Está claro que un empleado está supervisado por otro empleado. Veamos la forma de solucionarlo:
| Empleados | ||
| Código | Nombre | Supervisor |
| 102 | Juan | NO |
| 105 | Luis | SI |
| 821 | María | NO |
| 956 | Martín | SI |
Usuarios que han visto este tema también han visto...
- Referencias cruzadas en SQL
- Consultas de acción en SQL
- Consultas de Union Internas
- Crear Base de Datos en SQL
- SQL en breve
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.