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

Problemas con clausula UNIQUE

Estas en el tema de Problemas con clausula UNIQUE en el foro de Mysql en Foros del Web. teniendo una tabla hotel y otra tabla habitacion, donde hay una relacion de uno a muchos: idhabit---hotel_idhotel-- descripcion_habit ---1------------2-------------------501-------- ---2------------2-------------------502-------- ---3------------1-------------------501-------- Vemos que la habitacion ...
  #1 (permalink)  
Antiguo 09/02/2013, 17:51
 
Fecha de Ingreso: noviembre-2012
Ubicación: Villa Maria, Peru
Mensajes: 46
Antigüedad: 12 años
Puntos: 0
Problemas con clausula UNIQUE

teniendo una tabla hotel y otra tabla habitacion, donde hay una relacion de uno a muchos:

idhabit---hotel_idhotel-- descripcion_habit
---1------------2-------------------501--------
---2------------2-------------------502--------
---3------------1-------------------501--------
Vemos que la habitacion 501 se repite 2 veces pero SE REPITE PARA DIFERENTES HOTELE, porque la habitacion 501 con idhabit = 1 es del hotel 2 y la habitacion 501 con idhabit=3 es del hotel 1
Si le pongo UNIQUE a la columna descripcion_habit, no me permitiria colocar regustro iguales en esa columna, ¿Como decirle a la cluausla UNIQUE que ese501 no es el mismo, porque es de otro hotel?
  #2 (permalink)  
Antiguo 09/02/2013, 18: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: 17 años
Puntos: 2658
Respuesta: Problemas con clausula UNIQUE

Creandoel índice sobre los dos campos y no sobre uno sólo. Pero en esencia estás razonando mal la cosa. La tabla es la representación de una entidad débil y por tanto su pk es de al menos dos campos. Por ende no tiene que existir un id autoincremetal.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/02/2013, 23:06
 
Fecha de Ingreso: noviembre-2012
Ubicación: Villa Maria, Peru
Mensajes: 46
Antigüedad: 12 años
Puntos: 0
Respuesta: Problemas con clausula UNIQUE

Me esta diciendo que esta mal relacionada las tablas?
La relacion es de uno a muchos
"En un hotel puede haber muchisimas habitaciones, pero esa habitacion se encuentra en un solo hotel"
por lo cual el id de la habitacion nunca se repite por eso le puse autoincremental, el que se puede repetir es el FK proveniente de la tabla hotel, ya que para ese hotel podra haber muchas habitaciones.
No le veo el mal razonamiento aun, le ruego que me aclare su punto de vista. Please.
  #4 (permalink)  
Antiguo 10/02/2013, 04:33
Avatar de 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: Problemas con clausula UNIQUE

En ua relación uno a muchos identificatoria como esa el id del hotel y el de la habitación componen la clave primaria, la que es de doble campo (es una PK compuesta). En ese contexto, ese autoincremental es innecesario, superfluo.
El sólo hecho de que pueda crearse un índice UNIQUE con ellos, demuestra que es clave candidata y por tanto debe ser PK. Es parte del modelo relacional.
Ten en cuenta que por definición, una PK es única, por lo que al crearla con esos dos campos al mismo tiempo, estás cubriendo las dos necesidades: identificación eficiente y unicidad entre hotel y habitación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 11/02/2013 a las 05:19

Etiquetas: clausula, unique
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 08:01.