java - 投票系统存在逻辑问题

标签 java database voting voting-system

我正在寻求有关投票系统的帮助。

目前我有一个投票表,其中引用了投票的用户、被投票的用户和被投票的信息( parking 位)

CREATE TABLE parking_spots_votes(
vote_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,

parking_spot_id INTEGER DEFAULT NULL,
    key  parking_spot_id_fk (parking_spot_id),
    FOREIGN KEY (parking_spot_id) REFERENCES parking_spots(id),

uploaded_by_user_id INTEGER DEFAULT NULL,
    key  user_id_fk (uploaded_by_user_id),
    FOREIGN KEY (uploaded_by_user_id) REFERENCES parking_angel_users(id),

vote_casted_user_id INTEGER DEFAULT NULL,
    key  vote_cast_user_id_fk (vote_casted_user_id),
    FOREIGN KEY (vote_casted_user_id) REFERENCES parking_angel_users(id),

vote_type INTEGER NOT NULL
 )

投票类型可以是0表示不投票,1表示赞成票,2表示反对票

现在我遇到了一点逻辑问题。

例如

  1. 如果用户已经对 parking 位投票怎么办
  2. 我如何检查用户是否已经投票,如果他还没有投票则插入但如果他已经投票则不返回已投票。

  3. 如何更新用户(uploaded_by_user_id)分数。赞成票加一票,反对票减一票。

所以一般的流程是,

用户按下投票,服务器检查是否已经投票,如果已经投票则不能再次投票。 如果不是,则 vote_casted_user_id = 当前用户,parking_spot_id = 当前信息,uploaded_by_user_id = 上传信息的人, 然后 uploaded_by_user 分数将根据投票类型更新。

我正在使用带有 JDBC 连接到 MYSQL 数据库的 java servlet。

对我有什么想法吗?

最佳答案

  1. what if the user has already voted on a parking_spot?
  2. How do i check if a user has already voted and if he has not then insert but if he has then do not a return voted already.

这些基本上是同一个问题:如何测试用户是否已经在 parking 位上投票?那么,只需运行一个查询来获取 parking_spot_id 和 vote_casted_user_id 匹配的记录。

How do i update a user(uploaded_by_user_id) score. plus one for an up vote and minus one for a down vote?

如果不太麻烦,我会将 vote_type 的值更改为 +1 表示赞成票,-1 表示反对票。然后这只是 SELECT SUM(vote_type) FROM table WHERE uploaded_by_user_id=...

的问题

希望对你有帮助

关于java - 投票系统存在逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763101/

相关文章:

java - 通过传递导致应用程序失败的值来一个接一个地调用异步任务以进行 Web 服务调用

database - 如何在使用gradle测试之前重建数据库?

php - 了解 PHP 和 MySQL 安全性基础知识

open-source - 为什么投票机不开源?

javascript - 在 Rails 中使用 Ajax 进行投票

math - 如何减轻排名系统中的跟风效应(投票行为)?

java - 为什么 linkedhashmap 维护双向链表进行迭代

java - 将应用程序从 tomcat 移植到 glassfish

java - 签名小程序中的安全警告

mysql - 如何设置具有可变列的 mysql 数据库结构?