2010-02-27 21 views
5

ich die folgende MySQL-Tabelle haben ..ein Feld einzigartig machen abhängig von einem anderen Feld

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 

Alle Schlitze für den gleichen Tag sind, so dass der Benutzer kann verschiedene Zeiten des Tages, dass er frei ist.

Jetzt habe ich das gemacht und es hat funktioniert und jetzt bin ich auf ein Problem gestoßen. Ich habe einige Daten für einen Benutzer eingegeben und jetzt, wenn ich versuche, Daten für einen anderen Benutzer für das gleiche Datum einzugeben, kann ich nicht, weil es sagt, dass es bereits existiert.

Wie mache ich es so, dass ich denselben Benutzer mehrere Daten eingeben kann und auch ein anderer Benutzer das gleiche Datum eingibt? ... Aber derselbe Benutzer kann das gleiche Datum nicht zweimal eingeben ... Wie kann das? getan werden?

Antwort

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

Sie sollten Sie PRIMARY KEY auf date fallen.

Sie entweder auf user_id, date erstellen können (wie Daniel Vassallo vorgeschlagen), oder, wenn Sie diese Tabelle verweisen müssen, erstellen Sie ein Surrogat PRIMARY KEY (zum Beispiel mit einer AUTO_INCREMENT Spalte).

+0

Wenn es Ihnen nichts ausmacht, könnten Sie das ein bisschen mehr erklären ??? Ich verstehe nicht genau was hier gesagt wurde ... –

+0

@ananworks: Überprüfen Sie dies: http://en.wikipedia.org/wiki/Unique_key und das: http://help.w3schools.com/sql/sql_unique .asp für eine grundlegende Einführung in eindeutige Schlüssel. –

+0

thx ... krank chk es und c ... werde zurückkommen, wenn ich noch Hilfe brauche !! vielen Dank noch einmal !! –

Verwandte Themen