2
所以,這裏的問題(它可能是一個簡單的一個:P)Combinationally獨特的MySQL表
這是我的表結構:
CREATE TABLE `users_awards` (
`user_id` int(11) NOT NULL,
`award_id` int(11) NOT NULL,
`duplicate` int(11) NOT NULL DEFAULT '0',
UNIQUE KEY `award_id` (`award_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
所以這是一個爲用戶獎勵制度。我不希望我的用戶多次獲得同樣的獎勵,這就是爲什麼我有'重複'字段。
我想查詢是這樣(和3樣本數據2):
INSERT INTO users_awards (user_id, award_id)
VALUES ('3','2') ON DUPLICATE KEY UPDATE duplicate=duplicate+1
所以我的MySQL是一個有點生疏,但我設置user_id
是一個主鍵,award_id
到成爲一個唯一的關鍵。這(種)創造了所需的效果。
當用戶1被授予獎勵2時,它進入。如果他/她得到這個的兩倍,只有一個行會在餐桌上,並複製將被設置爲1。再次,2等
當用戶2給出獎1項,它進入。如果他/她得到了這兩次,重複更新,等等,等等
但當用戶1給出獎1項(用戶2已經被授予後),用戶2(與獎1項)的重複字段增加並且沒有任何內容被添加到用戶1中。
對不起,如果這有點貴。真的很感謝幫助!
插孔
謝謝!我不知道,唯一的contraint可能是多個列...我想這是非常重要的! :D我已經添加了這個,現在所有的工作都如預期的那樣。乾杯! – Jack 2010-06-13 09:36:59