我正在开发一个HTML5的多人游戏,其中在"关键词(keyword)"和"模型(model)"的表之间有一个m:n的关系,如下图所示:
当我在StackOverflow上搜索时,我遇到了两个想法,但我认为它们都不适合我的需求。
keyword.id
和model.id
是自增无符号整数, 而keyword.keyword
是唯一索引。为了效率,我正在寻找一种管理这种关系的方法。一种简单的方式是:
- 检查关键字是否已存在
- 如果是:从
model_has_keyword
中更新timesCount
和roundCount
- 如果不是:进行
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
语句:如果替换关键字表中的记录,id
将被分配下一个自增值,这样就会丢失对表model_has_keyword
的引用。