【发布时间】:2018-03-17 14:32:40
【问题描述】:
我希望将游戏结果存储在表格中。每轮将由 2-10 名玩家进行。每个玩家将得分在 1-5 分之间。我需要一种有效的方法来检索给定玩家/分数范围的所有回合。例如:
select all rounds where Hamburger14 scored 5
select all rounds where Cheese3 scored 1
select all rounds where Hotdog99 scored 4
我的第一个想法是使用全文索引的 varchar 字段“player_score”并像这样填充它:
player1:0-player2:3-player3.1
如果我想要所有玩家 1 得 5 分的回合,我会这样做:
select * from rounds where match(player_score) against("player1.5")
如果玩家池保持较小并且分数只有 1-5,这似乎可行,尽管我可能需要弄乱默认的 mySQL 停止列表或使用 HEX 值作为分数等。
但是这似乎非常丑陋。有什么建议吗?
可选:如果将来我想检索给定玩家和 SCORE RANGE 的回合(例如,playerX 得分为 3 或更多的所有回合),如何实现?
【问题讨论】:
标签: mysql indexing full-text-indexing