2012-06-26 27 views
0

可能重複:
Rating System in PHP and MySQL如何存儲收視率的MySQL數據庫

我一個評級系統工作從1分至10分我希望能夠保持跟蹤所有用戶的評分以及他們是否已經對該特定項目進行評分。

備註: - 我登錄,因此每個用戶在數據庫中都有唯一的ID。 - 每個特定項目也有一個唯一的ID。

我的問題是:我應該如何以最好的方式將數據準確存儲在數據庫中。

這是我在想這樣做的:

Unique_Key | Item_ID | User_ID | User_rating 
    1   1   1   (1-10) 
    2   1   2   (1-10) 
    3   2   2   (1-10) 
    4   3   1   (1-10) 
    5   4   1   (1-10) 

因此,如果用戶被評比的Item_ID已經與他們的USER_ID分貝他們不會能率,否則他們可以。

我在尋找建議,如果這是一個安全,乾淨的方式來做到這一點,我開始任何編碼之前。謝謝。

回答

2

如果您爲itemID - userID組合添加了唯一密鑰,那麼這將是存儲該信息的保存方法。

您可以添加一個唯一的密鑰這樣

ALTER TABLE your_table 
ADD UNIQUE (itemID, userID); 

UNIQUE約束唯一標識數據庫表中的記錄。 UNIQUE和PRIMARY KEY約束都爲一列或一組列的唯一性提供了保證。

+0

我編輯它,現在你認爲它好嗎? – Skovy

+1

不,不要添加另一列。告訴SQL引擎「itemID」和「userID」只能在一個組合中插入。如果你定義了一個唯一的鍵並且想要插入(1,2)兩次,那麼SQL不會讓你。 –

+0

好吧,你的意思是檢查該組合,如果它存在不允許另一個費率/條目,如果它不存在,然後繼續? – Skovy

相關問題