2010-02-27 23 views
5

Tengo la siguiente tabla de MySQL ..Hacer un campo único en función de otro campo

userid - foreign key 
date - primary key 
slot1 - 1st free slot 
slot2 - 2nd free slot 
slot3 - 3rd free slot 
slot4 - 4th free slot 
slot5 - 5th free slot 
slot6 - 6th free slot 
slot7 - 7th free slot 
slot8 - 8th free slot 

Todas las ranuras son para el mismo día, por lo que el usuario puede introducir diferentes momentos del día que es libre.

Ahora lo hice y funcionó y ahora tropecé con un problema. Ingresé algunos datos para un usuario y ahora cuando trato de ingresar datos para otro usuario para la misma fecha, no puedo porque dice que ya existe.

¿Cómo hago para que el mismo usuario pueda ingresar varias fechas y también otro usuario ingresa la misma fecha? ... Pero el mismo usuario no puede ingresar la misma fecha dos veces ... ¿Cómo puede esto? estar hecho?

Respuesta

3
ALTER TABLE mytable ADD CONSTRAINT ux_mytable_user_date UNIQUE KEY (user, date) 

Debe dejar que PRIMARY KEY en date.

Es posible que ya sea crear una en user_id, date (como se sugiere Daniel Vassallo), o, si es necesario hacer referencia a esta tabla, cree un sustituto PRIMARY KEY (por ejemplo, con una columna de AUTO_INCREMENT).

+0

si no te importa ¿podrías explicar esto un poco más? no entiendo exactamente qué has dicho aquí ... –

+0

@ananworks: Mira esto: http://en.wikipedia.org/wiki/Unique_key y esto: http://help.w3schools.com/sql/sql_unique .asp para una introducción básica sobre claves únicas. –

+0

thx ... chk it yc ... ¡volveré si aún necesito ayuda! muchas gracias una vez más !! –

Cuestiones relacionadas