繁体   English   中英

将任务按顺序分组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM