30/07/2012, 09:00
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Relacion 0:N Workbench Como ya te mencioné, la diferencia entre los conectores (y las relaciones que representan) es que sean identificatorios o no.
Pero vamos a hacer algunas aclaraciones:
Llamamos identificatorio al vínculo:
* Si y sólo si la FK que la tabla recibe de otra es parte de su calve primaria.
* Cuando es identificatorio, obligatoriamente la FK es NOT NULL, por definición de clave primaria.
* Si se usa una relación identificatoria, no se debe usar un ID autoincremental.
* Si la relación es 1:N, se debe agregar a esa FK algún otro campo discriminatorio para formar la PK de esa tabla.
Si el vínculo no es identificatorio:
* La FK recibida puede o no ser NULL, dependiendo de las reglas del negocio.
* La FK no es parte de la PK de la tabla que la recibe.
* Si es mandatoria, es NOT NULL, si es opcional puede ser NULL.
* Es mandatoria cuando es una relación que debe cumplirse si o si (por ejemplo, la lista de items vendidos en una factura debe tener el ID de un producto).
* Es opcional, cuando puede cumplirse en algunos casos, pero no en todos (un producto vendido puede tener descuentos por promoción, pero puede que no todos los de la lista tengan relacionada la oferta).
¿Se entiende la idea?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |