我有一个Flash游戏;用户有很多项目;每个项目都是数据库中表格中的一行,其中包含列:
id - user_id - item_type_id - quantity
每次用户获取项目时,我都会对数据库执行选择,以检查用户是否已拥有该项目类型的行。如果它不存在,则插入,否则增加数量并提交;一切都在交易中。
有时,当游戏流量过大时,会出现重复的项目行。现在,我执行选择以检查重复行以合并数量并删除重复的行。
我正在使用MySQL。
答案 0 :(得分:4)
您需要确保列对user_id
和item_type_id
上有唯一约束(索引)。否则,系统可以允许重复输入,就像您发现的那样。
答案 1 :(得分:1)
为避免在需要更新时尝试插入时出错,可以使用ON DUPLICATE子句。请参阅this链接,了解如何使用它。