我的問題是:什麼是最好的方式 存儲用戶的投票包括IP和答案ID在新的MySQL行或只是在答案行中的字段包括所有選票都作爲「序列化」數據 以及如果 什麼是存儲此序列化數據的文件類型投票問題 - 存儲投票序列化,而不是多行
0
A
回答
3
將多個值存儲在一列中幾乎總是一個壞主意,因爲難以解析出值您需要並可以在提取零件所需的字符串操作後使列索引不可用。
製作一個標準化的表格,每個用戶每個答案存儲一行。如果個人答案本身就是一個單一的數據點,它就屬於自己的行。
如果你正在跟蹤用戶通過IP:
CREATE TABLE votes (
voteid INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userip VARCHAR(15) NOT NULL,
answerid INT NOT NULL
);
此外,這給你的是能夠查詢在這樣的方式您的數據的好處:
/* Get vote count per user */
SELECT userip, COUNT(*) FROM votes GROUP BY userip;
/* Get users who have voted 3 or more times */
SELECT userip FROM votes GROUP BY userip HAVING COUNT(*) >= 3;
要完成同樣的事情一個序列化的列,您需要將其查詢到應用程序代碼中,解析出分隔符,然後執行分析。要在應用程序代碼中實現第二個(count> = 3),需要重新實現數據庫已經非常擅長的許多事情,例如排序,分組和計數。
0
您應該創建每個不同的項目作爲自己的列。
這使訪問各個列的複雜程度降低。除了通常對MySQL更高效之外,您的編寫查詢將不那麼複雜。
它還允許您爲每列指定不同的類型和長度要求。例如,您可能有一個Integer列和一個Character列,每個列都有不同的存儲需求和類型含義。
我建議存儲整數列中的IP地址,using the INET_ATON()
and INET_NTOA()
functions。
相關問題
- 1. 投票投票牆
- 2. JQuery投票問題
- 3. JNI投票問題
- 4. 投票的問題
- 5. 基於投票投票的JQuery多個百分比投票
- 6. AngularJS投票系統 - 防止多投票
- 7. 投票與長投票
- 8. 投票重複投票
- 9. Django投票:按投票排序
- 10. 檢查用戶是否投票投票
- 11. 評論與投票行爲投票
- 12. 投票 - 存儲過程
- 13. Azure存儲投票模式
- 14. 檢查用戶是否投票,如果不保存投票
- 15. 投票 - 票數與投票率?
- 16. 投票系統問題
- 17. 投票系統問題
- 18. 問題跟蹤與投票
- 19. jQuery的投票有問題,就像stackoverflow投票?
- 20. 投票不算
- 21. 投票系統存在邏輯問題
- 22. 如何建立投票系統來支持多種投票類型的投票?
- 23. 更多投票()?的
- 24. 如何檢查用戶是否已投票進行投票?
- 25. 通過投票Django-voting排序問題
- 26. 使用asp.net和sql投票投票
- 27. 投票欄顯示沒有投票
- 28. 如何投票投票系統?
- 29. 獨特的男女投票誰投票
- 30. 問題與投票系統,Cookie問題