gpt4 book ai didi

java - 确保数据库中每个用户、每个页面的单次投票

转载 作者:行者123 更新时间:2023-12-02 00:42:32 24 4
gpt4 key购买 nike

我正在 Java Web 应用程序中开发一个小功能,该功能与 stackoverflow.com 上的投票赞成/反对功能非常相似。我有一个如下所示的数据库:

VOTE TABLE
id (bigint): surrogate primary key
question_id (bigint):: the question the vote is for
vote_type (int): whether the vote is up or down
user_id (varchar): the username of the person who the vote belongs to

我想确保每个人每个问题在数据库中只有一票。执行此操作的最佳方法是什么?如何使用我上面描述的数据库模式来强制执行它?

我目前遇到的问题是,用户发出两个投票请求,然后数据库包含该用户的 2 个“投票”,而他们应该只有一票。

最佳答案

您可以通过主键或唯一索引强制执行 - 这两个概念在数据库中非常通用。将其放在两列上:Question_id 和 User_id。这将只允许每个用户每个问题 1 个条目。这将由数据库强制执行,即使您的应用程序代码允许它们投票两次,数据库也会在尝试插入的第二条记录上抛出错误。 (即使您使用事务等,数据库也会正确执行它。)

关于java - 确保数据库中每个用户、每个页面的单次投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com