【发布时间】:2010-10-20 23:35:29
【问题描述】:
给定一个时间(例如,目前是周二下午 4:24),我希望能够从一组企业中选择所有当前营业的企业。
- 我有一周中每一天的每家企业的营业和关闭时间
- 假设一家企业只能在每小时的 00、15、30、45 分钟标记开/关
- 我假设每周的时间表相同。
- 我最感兴趣的是能够快速查找在特定时间开放的一组业务,而不是数据的空间要求。
- 请注意,有些我一天晚上 11 点开门,第二天凌晨 1 点关门。
- 节假日无所谓 - 我会单独处理这些
存储这些打开/关闭时间的最有效方法是什么,以便通过单个时间/星期几元组我可以快速找出哪些企业正在营业?
我正在使用 Python、SOLR 和 mysql。我希望能够在 SOLR 中进行查询。但坦率地说,我愿意接受任何建议和替代方案。
【问题讨论】:
-
您对查找业务的效率更感兴趣,还是对占用更少的存储空间更感兴趣?
-
您需要更清楚地说明您的要求。你需要什么样的粒度? (企业可以在 7:36 营业吗?)每周是否足够或有特殊情况(每隔一个星期五休息)
-
还有节假日(银行假日、国定假日)呢?还是公司休假等奇怪的事情?
-
也许这不是最快的方法,但一个简单而干净的方法就是使用嵌套查询.....如果你想找到谁在周二 4:24 开门,然后找到所有的商家都在星期二营业,然后与 4:24 之前的营业时间相交,并与 4:24 之后的营业时间相交。即,您的表格看起来像:store_id、day_of_week、open_time、close_time,并且您可能每个商店都有 5 个条目...
标签: python mysql performance solr