sql - 赞成票和反对票投票系统的数据库结构

标签 sql database schema voting-system

我要为 Web 应用程序创建一个投票系统,想知道将投票存储在 (SQL) 数据库中的最佳方法是什么。

投票系统类似于 StackOverflow 中的一个。我现在正在考虑是否应该将赞成票和反对票存储在不同的表中。这样就更容易计算所有投票结果。否决票。另一方面,我必须查询两个表才能找到用户或投票项目的所有投票。

另一种方法是使用一个带有 bool 字段的表,该字段指定此投票是赞成票还是反对票。但我想计算赞成票或反对票的速度非常慢(当你有很多票时),并且 bool 字段上的索引(据我所知)没有多大意义。

您将如何创建数据库结构?一张还是两张 table ?

最佳答案

根据评论,我们找到了最适合 Zardoz 的解决方案

他不想一直统计选票,需要尽可能多的细节。所以解决方案是两者的结合。

  1. 在所考虑的表中添加一个整数字段来存储投票计数(确保不会溢出)。
  2. 创建额外的表来记录投票(用户、帖子、日期、上/下等)

我建议在日志表中插入/删除/更新投票时使用触发器自动更新“投票计数字段”。

关于sql - 赞成票和反对票投票系统的数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404278/

相关文章:

java - 与hibernate分组的其他字段一起计数

mysql - 是否可以从 Electron 应用程序将查询发送到在线数据库?

mysql - MySql 和 Node.js 中的批处理

c++ - 用于 C++ 的 MySQL 连接器 | setSchema 上的 MySQL_Connection::setReadOnly() 异常

ruby-on-rails - heroku 不更新数据库架构

sql - 比较日期范围

sql - PostgreSQL:意外的数组元素

mongodb - 我正在尝试使用请求创建一个新的购物车模式

mysql - Left Join 查询返回重复项

database - PutHBaseRecord 行标识符中的多个列名称 NiFi 中的字段名称属性