Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/07/2012, 09:00
Avatar de gnzsoloyo
gnzsoloyo
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)