我正在为私人日托中心的一小部分父母构建一个网站。该站点所需的功能之一是有一个日历,您可以在其中选择您可以负责清洁区域的日期。现在,我制作了一个工作日历。我在网上找到了一个简单的脚本,我对其进行了修改以适应我们的目的。从技术上讲,它运行良好,但我开始怀疑我是否真的应该改变它从数据库中提取信息的方式。
日历每月显示一次,并使用 for 循环绘制为表格。这意味着每次加载页面时,所述 for 循环运行 28-31 次,具体取决于月份。为了介绍谁负责每天清洁,我添加了一个对存储每个成员清洁日的 MySQL 数据库的调用。伪代码看起来像这样,简化:
Draw table month
for day=start_of_month to day=end_ofmonth
type day
select member from cleaning_schedule where picked_day=day
type member
这意味着页面的每次重新加载都会对数据库进行至少 28 次 SELECT 调用,在我看来,这似乎既低效又容易受到 DDOS 攻击。有没有更有效的方法来获得相同的结果?那里有更复杂的预订日历,他们如何处理?