[英]Group tasks together in order
我将对此进行类比,只是为了简化解释。
假设在游戏中您有一栋可以生产弓箭手和骑兵的建筑物。 您先下了5个弓箭手的订单,然后下了3个骑兵,然后又下一个命令订购另外4个弓箭手。
对于这个例子,我有一个MySQL表:
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT
`buildingid` INT UNSIGNED NOT NULL
`unit` ENUM('Archer','Cavalry') NOT NULL
`complete` TIMESTAMP NOT NULL
现在,我想显示订单队列中的单位。 大多数这种风格的游戏只会在一行中显示5个弓箭手,3个骑兵和4个其他弓箭手。 但是由于我不希望限制队列的长度,因此对于较大的订单(例如200名弓箭手)可能会很混乱
我希望MySQL可以返回buildingid, unit, count, next
,其中“ count”是单位数,“ next”是将要完成的最早单位的时间戳。
虽然我可以使用GROUP BY
查询,但这会将所有弓箭手分组在一起,而不管两者之间的骑兵如何。 我需要一种按单元类型分组的方法,限于连续的条目。
我之前的尝试奏效了,但是当我测试订购1000个单位时,服务器完全崩溃了。
我希望我能解释得足够清楚...
正确的答案是通过添加“数量”字段在数据库中对它们进行分组。 到达时间后,将数量减少一,并为下一个对象的完成时间重置计时器,如果数量为零,则删除该行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.