我正在创建一个日历,显示一个月的事件时间表。每天都有几个参数决定当天是否可以安排更多事件(有多少工作人员可用、有多少次可用等)。
我的数据库是使用三个表设置的:
- 定期计划 - 用于为一周中的每一天创建一个数组,概述有多少员工可以工作、他们可以工作的时间等
- 日程变化 - 如果某个日期有变化,这会覆盖常规日程数组中的信息。
- 事件 - 现有事件,按日期引用。
在此阶段,代码会循环访问该月中的每一天,并每天检查两到三件事。
- 时间表是否有任何变化(公共(public)假期、缩短工作时间等)?
- 今天的工作时间/员 worker 数是多少?
- (如果有工作人员)这一天已经安排了多少场事件?
第 1 步和第 3 步需要数据库查询 - 假设每月 30 天,即每次页面浏览 60 次查询。
我担心这会如何扩展,对于少数用户来说,我不认为这会是一个大问题,但如果 20 个人尝试同时加载页面,那么它会跳到 1200查询...
任何关于如何更有效地做到这一点的想法或建议将不胜感激!
谢谢!
最佳答案
我想不出您需要将每个查询限制为一天的充分理由。当然,您可以选择一对日期之间的所有值。
类似地,您可以使用联接来获取给定日期安排的事件数。
然后对数据库查询返回的数组执行循环(每天)。
关于php - 查询日历事件的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735216/