我有一个问题,这对我来说很复杂,但对于你们中的一些人来说,这很容易。 这里是: 我有一个像这样的MySQL表
id | username | time_zone | selected
1 XXX +4 1
2 XXX -6 0
3 XXX NULL 1
等等。行数可以超过一百万。 (请注意,可能存在未定义时区的用户。) 有一个PHP脚本,它通过cron作业每小时运行一次,并从表中选择一定数量的行。 现在是困难的部分。
amount selected = COUNT()/24
)COUNT()/24
,可以使用未定义的用户或来自邻居时区的用户来补偿相等性。 我不需要代码而是逻辑。如果有人可以提供帮助,我会非常满意。如果有任何问题,我可以详细介绍。
答案 0 :(得分:3)
你有垃圾箱包装问题。 “借用邻近的时区”使这变得更加复杂。以下是关于如何解决问题的一些想法。
这是考虑解决方案的一种方法:
selected
)哦,这看起来很复杂。它似乎也需要一堆游标才能解决问题。
相反,让我们按时区而不是用户填充。
这已经接近了。您可以通过一次性将用户分配到时区来进一步优化它。然后,对于未满的时区,请从其他时区中挑选多余的用户。