我正在开发一个 HTML5 多人游戏,其中我有:n 表“关键字”和“模型”之间的关系,如下图所示:
keyword.id
并且model.id
是 auto_increment unsigned int 并且keyword.keyword
是唯一索引。
为了效率,我正在寻找一种管理关系的方法。简单的方法是:
- 检查关键字是否已经存在
- 如果是:更新
timesCount
和roundCount
从model_has_keyword
- 如果没有:
insert into keyword
和insert into model_has_keyword
但随着越来越多的用户同时玩,只怕琐碎的方式会变得太慢。那么最有效的方法是什么?
在 StackOverflow 上搜索时,我偶然发现了两个想法,但我认为它们都不符合我的需求。
INSERT INTO table ON DUPLICATE KEY UPDATE col=val
如果INSERT INTO
会被处理,我需要触发另一个INSERT INTO
语句来插入两个表keyword
和model_has_keyword
REPLACE
语句:如果我替换table关键字中的记录,id
则分配下一个自增值,从而model_has_keyword
丢失对表的引用。
由于我不是专家,如果我在这里误解了什么,请纠正我。