我有以下MySQL表..
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
所有广告位都在同一天,因此用户可以输入他空闲的一天中的不同时间。
现在我做了这个并且它有效,现在我偶然发现了一个问题。我为一个用户输入了一些数据,现在当我尝试为同一日期输入另一个用户的数据时,我不能说它已经存在了。
如何制作它以便我可以让同一个用户输入多个日期而另一个用户输入相同的日期?...但是同一个用户不能两次输入相同的日期...这怎么可能做什么?
答案 0 :(得分:4)
您可能希望在PRIMARY KEY
和user_id
上使用复合date
。
您也可以使用unique key作为Quassnoi suggested,但实际上您的date
字段看起来不是有效的candidate for a primary key。
答案 1 :(得分:3)
ALTER TABLE mytable ADD CONSTRAINT ux_mytable_user_date UNIQUE KEY (user, date)
您应该将PRIMARY KEY
放在date
上。
您可以在user_id, date
上创建一个(如Daniel Vassallo建议的那样),或者,如果您需要引用此表,请创建代理PRIMARY KEY
(例如,使用AUTO_INCREMENT
列)。