Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/09/2011, 19:35
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: 16 años, 5 meses
Puntos: 2658
Respuesta: LLave primara compuesta con valores NULL

Lo que no puedes hacer (en ningún DBMS que se respete) es usar operadores lógicos para comparar campos NULL, porque los operadores sólo funcionan con datos, y NULL no es un dato.
Cuando un campo es NULL sólo se puede establecer si ese es su estado, ya que eso es lo que NULL es: Un estado, ,un puntero a la nada... y la nada no es comparable.


Por otro lado:
- No puedes, bajo ninguna circunstancia crear una PK con valores NULL, porque es una violación al modelo relacional.
- Si puedes, en MySQL crear una FK que admita NULL si y sólo si el campo referenciado es parte de un indice UNIQUE, pero en ese caso sólo puede existir uno en la tabla de referencia.
- Si tienes una estructura tal que una tabla relacional pueda contener una PK con valores NULL, lo que tienes es un pésimo diseño de la base, porque los datos elegidos para PK nunca deben ser NULL, en ningún caso.
- Si tienes una tabla relacional cuya PK se origina en las PK de más de dos tablas, entonces tienes un error de diseño severo, porque según el paradigma relacional, sólo se aceptan entidades ternarias y no cuaternarias o superiores.
- Lo que sí puede existir es una tabla relacional que tenga una relación no identificatoria con otras tablas, cuyas PK no son parte de la PK de esa tabla.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)