根据商店营业时间有效确定企业是否营业

2024-01-07

给定时间(例如,目前周二下午 4:24),我希望能够从一组企业中选择当前正在营业的所有企业。

  • 我有一周中每一天每个企业的营业时间和休息时间
  • 假设一家企业只能在每小时 00、15、30、45 分钟处开门/关门
  • 我假设每周都有相同的时间表。
  • 我最感兴趣的是能够快速查找一组在某个时间开放的业务,而不是数据的空间需求。
  • 请注意,有些一天晚上 11 点开门,第二天凌晨 1 点关门。
  • 假期无关紧要 - 我会单独处理这些

存储这些打开/关闭时间的最有效方法是什么,以便使用单个时间/星期几元组我可以speedily弄清楚哪些企业还在营业?

我正在使用Python、SOLR 和mysql。我希望能够在 SOLR 中进行查询。但坦率地说,我愿意接受任何建议和替代方案。


如果您愿意一次只查看一周,则可以将所有开放/关闭时间规范化为自一周开始以来设定的分钟数,例如周日 0 点。对于每个商店,您创建许多 [startTime, endTime, storeId] 形式的元组。 (对于跨越周日午夜的时间,您必须创建两个元组,一个到周末,一个从本周初开始)。这组元组将在 startTime 和 endTime 上建立索引(例如,使用要预处理的树)。元组不应该那么大:一周只有大约 10k 分钟,可以容纳 2 个字节。这种结构在具有适当索引的 MySQL 表中非常优雅,并且对于信息更改时不断插入和删除的记录具有很强的弹性。您的查询将只是“select storeId where startTime = time”,其中时间是自周日午夜以来的规范化分钟数。

如果信息不经常更改,并且您希望查找速度非常快,则可以预先解决每个可能的查询并缓存结果。例如,一周只有 672 个刻钟时段。有了一份企业列表,每个企业都有一个开门和关门时间列表,就像 Brandon Rhodes 的解决方案一样,您可以简单地迭代一周中每 15 分钟的时间段,找出谁在营业,然后将答案存储在查找表中或内存中的列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据商店营业时间有效确定企业是否营业 的相关文章

随机推荐