我有一個表格,其中列id
,user_id
,post_id
, like
, views
。當用戶點擊Like按鈕時,一行將被添加到相應的user_id
和post_id
表中,並且like
將被設置爲1
。如果該行已經存在並且like
列已經是1
,則什麼也不會發生。使用帶有2個密鑰的重複密鑰更新
當用戶訪問特定頁面,一行將被添加到表與相應的user_id
和post_id
,並view
將被設置爲1
。但是,如果該行已存在,則view
中的值將遞增。
問題:我嘗試使用INSERT INTO mytable ... ON DUPLICATE KEY UPDATE like = 1
,但表的主鍵是id
和不user_id
或post_id
。如果我將主密鑰設置爲user_id
或post_id
,則會出現問題,因爲如果存在具有相同user_id
和post_id
的行,則只會複製該行。
在這種情況下,應該如何構建查詢?
或者更好的情況是將表格拆分成2個表格,一個用於likes
,另一個用於views
。如果是這種情況,我仍然需要根據user_id
和post_id
這兩列設置唯一的行。
或者做多個SQL查詢?
請指教,謝謝!
所以我創建兩個'user_id'和'post_id'列的唯一鍵,主鍵仍然是'id'? 'ALTER TABLE''喜歡''ADD ADD UNIQUE( \'user_id \', \'post_id \' );' – Nyxynyx 2012-07-21 21:08:04
正好!如果需要,您可以擁有唯一的密鑰和主鍵 – 2012-07-23 19:03:18