Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Primary Keys Null?

Estas en el tema de Primary Keys Null? en el foro de Mysql en Foros del Web. Estoy haciendo un proyecto integrado en el cual tengo que crear una web en PHP. Tengo un par de preguntas, pero me gustaría que antes ...
  #1 (permalink)  
Antiguo 20/04/2011, 11:05
 
Fecha de Ingreso: enero-2011
Mensajes: 26
Antigüedad: 13 años, 3 meses
Puntos: 1
Primary Keys Null?

Estoy haciendo un proyecto integrado en el cual tengo que crear una web en PHP.

Tengo un par de preguntas, pero me gustaría que antes que nada me respondiérais si es posible crear PK NO requeridas o si es correcto o no.
El caso:
Mi caso, es que tengo una tabla llamada CESTA a la que le tengo que pasar los materiales que el usuario quiera introducir en la tabla CESTA, sin embargo en esa CESTA se pueden introducir MATERIALES y CURSOS. De modo que puede haber materiales pero no cursos y viceversa o puede suceder los dos casos. ¿Cómo soluciono el problema?

Saludos

Última edición por Pepe_1988; 20/04/2011 a las 11:20
  #2 (permalink)  
Antiguo 20/04/2011, 12:10
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Primary Keys Null?

Cita:
Tengo un par de preguntas, pero me gustaría que antes que nada me respondiérais si es posible crear PK NO requeridas o si es correcto o no.
Absolutamente NO.
La clave primaria nunca puede ser nula. Es un requisito del modelo E-R, y ningún DBMS te dejará crear una PK que pueda ser NULL.
Cita:
Mi caso, es que tengo una tabla llamada CESTA a la que le tengo que pasar los materiales que el usuario quiera introducir en la tabla CESTA, sin embargo en esa CESTA se pueden introducir MATERIALES y CURSOS. De modo que puede haber materiales pero no cursos y viceversa o puede suceder los dos casos. ¿Cómo soluciono el problema?
Estás confundiendo PK (primary key o clave primaria) con FK (foreign key o clave foránea). Son dos cosas diferentes.
En tu caso el problema es definir el contenido de la cesta, que son diferentes items, y por tanto en la entidad "cesta" hay una PK propia que identifica el ítem, el cual a su vez tiene definido una FK que lo relaciona con la instancia de la entidad a que ese item pertenece.
El problema es que el diseño que estás planteando tiene un defecto: Para funcionar correctamente debe existir una entidad que integre ambos conceptos para que la FK apunte a un único sitio.
Esto se hace habitualmente haciendo una entidad integradora (llamémosla "productos"), la cual tiene subentidades dependientes (jerarquía, herencia) que obtienen su ID de la entidad madre. De esta forma puedes tener "materiales" y "cursos" sin necesidad de tener que poner dos FK en Cesta.

¿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)

Etiquetas: keys, null
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:37.