我的问题是:什么是最好的方式 存储用户的投票包括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. JNI投票问题
- 3. JQuery投票问题
- 4. 投票与长投票
- 5. Azure存储投票模式
- 6. 投票 - 票数与投票率?
- 7. 投票系统问题
- 8. 问题跟踪与投票
- 9. jQuery的投票有问题,就像stackoverflow投票?
- 10. 如何建立投票系统来支持多种投票类型的投票?
- 11. 更多投票()?的
- 12. 如何投票投票系统?
- 13. 独特的男女投票谁投票
- 14. 投票栏显示没有投票
- 15. 通过投票Django-voting排序问题
- 16. 问题与投票系统,Cookie问题
- 17. 三个arff文件多数票投票
- 18. 编号投票
- 19. 投票网站
- 20. Reddit投票API
- 21. 如何存储CouchDB文档的投票?
- 22. PHP/MySQL多个投票
- 23. Rails:连接到投票的jquery问题
- 24. 投票系统中的模型问题
- 25. php投票系统 - 数据库问题
- 26. 什么是KNN软投票?
- 27. jQuery投票系统
- 28. Java投票系统
- 29. Weka classifier meta投票
- 30. 投票方法 - Mysql