我有一個用於檢測文章視圖的表格 - 每個article_id&&NULL&&IP
都有一個唯一的行,當沒有人登錄時,每個article_id&&loggedInUser&&IP
都有唯一的行。
所以我認爲,當沒有人登錄時,我只會添加NULL而不是user_id。但MySQL的驚訝我 - 當我添加UNIQUE KEY像article_id&&user_id&&IP
它工作得很好了登錄的用戶,但如果沒有用戶登錄其開始添加等(例如)行:當數值爲NULL時,MySQL唯一索引不適用
article_id | user_id | IP
5 NULL 192.168.3.50
5 NULL 192.168.3.50
5 NULL 192.168.3.50
5 NULL 192.168.3.50
這似乎沒有太多獨特 - 我知道它是由NULL引起的,但是如何解決這個問題呢?我應該僅僅依賴於沒有用戶將user_id設置爲「0」的事實嗎?
謝謝。
你可以把創建表語法的信息? –
這是有意和記錄 - http://dev.mysql.com/doc/refman/5.0/en/create-index.html。「一個UNIQUE索引允許多個NULL值可以包含NULL的列」。我可能會使用0,或者設置一個'none'用戶標識符以防其他目的使用0(即,我經常將數字id輸入字段轉換爲int等價物,如果有人在玩耍,那麼可能是0不想讓0有效)。 – Kickstart
@Kickstart請描述整體問題多一點 - 這可能是一個很好的答案:) –