2010-02-27 18 views
5

Ho la seguente tabella MySQL ..Fai un campo unico a seconda un altro 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 

Tutti gli slot sono per lo stesso giorno, in modo che l'utente può immettere diversi momenti della giornata che è libero.

Ora ho fatto questo e ha funzionato e ora mi sono imbattuto in un problema. Ho inserito alcuni dati per un utente e ora quando provo a inserire i dati per un altro utente per la stessa data non posso perché dice che esiste già.

Come faccio a far sì che lo stesso utente possa inserire più date e anche un altro utente inserisca la stessa data? ... Ma lo stesso utente non può inserire la stessa data due volte ... Come può questo essere fatto?

risposta

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

Si dovrebbe porterà PRIMARY KEY su date.

si può sia creare uno sul user_id, date (come suggerito Daniele Vassallo), o, se è necessario fare riferimento a queste tabella, creare un surrogato PRIMARY KEY (ad esempio, con una colonna AUTO_INCREMENT).

+0

se non ti dispiace potresti spiegarlo un po 'di più ??? Non capisco esattamente cosa abbia detto qui ... –

+0

@ananworks: Guarda questo: http://en.wikipedia.org/wiki/Unique_key e questo: http://help.w3schools.com/sql/sql_unique .asp per un'introduzione di base su chiavi univoche. –

+0

thx ... ill chk it e c ... tornerà se ho ancora bisogno di aiuto !! grazie ancora una volta !! –

Problemi correlati