我要为 Web 应用程序创建一个投票系统,想知道将投票存储在 (SQL) 数据库中的最佳方法是什么。
投票系统类似于 StackOverflow 中的一个。我现在正在考虑是否应该将赞成票和反对票存储在不同的表中。这样就更容易计算所有投票结果。否决票。另一方面,我必须查询两个表才能找到用户或投票项目的所有投票。
另一种方法是使用一个带有 bool 字段的表,该字段指定此投票是赞成票还是反对票。但我想计算赞成票或反对票的速度非常慢(当你有很多票时),并且 bool 字段上的索引(据我所知)没有多大意义。
您将如何创建数据库结构?一张还是两张 table ?
最佳答案
根据评论,我们找到了最适合 Zardoz 的解决方案
他不想一直统计选票,需要尽可能多的细节。所以解决方案是两者的结合。
- 在所考虑的表中添加一个整数字段来存储投票计数(确保不会溢出)。
- 创建额外的表来记录投票(用户、帖子、日期、上/下等)
我建议在日志表中插入/删除/更新投票时使用触发器自动更新“投票计数字段”。
关于sql - 赞成票和反对票投票系统的数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404278/