2012-03-18 40 views
1

全部如何存儲評分系統的ID?

我需要一個快速的幫助,瞭解如何在mysql數據庫中存儲評價者的id以便在php腳本中使用它。像 我有一個PHP星級評級腳本,我希望當有人評價個人資料時,他/她的ID應該存儲在數據庫中以檢查他們是否已經投票。如何將其與其他評估者個人資料ID一起存儲在單個列中。數據庫的結構是這樣的

user_id | rated_value | rated_count | raters_id 

這裏user_id是正在被評爲 rated_value的配置文件的ID是所有投票總價值 RATED_COUNT是有史以來額定具體輪廓總率的數量。 和raters_id是評估該配置文件的所有評估者的ID。

現在我想檢查配置文件ID是否已經用php評估配置文件。我聽說過逗號分隔的ID列表,但這是個好主意。如果我使用逗號分隔的列表,我該如何檢查php是否已經對該檔案進行了評分。

感謝您的幫助。

回答

0

你只需要3列:

user_id | rated_value | rater_id 

,你將不得不在這裏保存每一個等級,所以你甚至可以告知用戶,他在過去的多少明星評級。

要獲得總評級user_id = 1使用聚合函數和MySQL的分組:

SELECT 
    AVG(rated_value) as average_rating, 
    COUNT(*) AS number_of_votes 
FROM 
    user_rating 
WHERE 
    user_id = 1 
GROUP BY 
    user_id 

要檢查是否rater_id = 3額定user_id = 1使用簡單的查詢

SELECT rated_value FROM user_rating WHERE user_id = 1 AND rater_id = 3 

並檢查它是否返回任何結果

+0

但仍然如何我可以將rater_id存儲在數據庫中,因爲會有很多ID將評價個人檔案 – Prashank 2012-03-18 09:41:14

+0

在我的解決方案中,'user_rating'中的每一行都是針對每個投票的,因此如果兩個用戶對'user_id = 1'進行評分,則會有兩行'user_id = 1'anb,兩者都會有不同的'rater_id'。 – 2012-03-18 09:45:25

+0

好吧,但是你能否給出一個關於爲存儲rater_id而設置不同表格的想法。可能嗎? – Prashank 2012-03-18 09:52:15