gpt4 book ai didi

php - 具有重复事件的数据库的优化设计

转载 作者:可可西里 更新时间:2023-11-01 07:33:42 25 4
gpt4 key购买 nike

我想创建一个 php 日历应用程序。如果我想创建正常、每周、每月和每年的事件,该软件的最佳数据库设计是什么。

最佳答案

我会为事件的每次重复创建一个条目,直到某个地平线。但是,这意味着您将需要另一个表格,如果他们扫描超过您的范围日期,您可以使用它来预测日期。即,您需要一个事件表,其中包含重复事件(1 月 1 日、1 月 8 日、1 月 15 日……到 12 月)的每次发生的一个记录,以及一个包含可用于播种 future 年份的每条记录的表(开始date: Jan 1; repeat: 7; through: 2011) 这样在 2012 年初(或者只要用户请求查看 2012 年以后的月份)你就可以生成 future 的事件。

这有两个很大的缺点:

  1. 您的数据库包含一整年的数据。但是,如果添加一整年的数据会破坏您的性能,则您的系统可能动力不足。 (日历应用程序似乎需要能够处理多年的日期)
  2. 在事件视界结束时,您需要为重复发生的事件生成 future 日期。

胜过缺点的优点(IMO):

  1. 显示日历时更容易计算。使用上面 Tim 的方法,如果用户加载 2011 年 12 月 18 日,您将如何计算应该在这一天放置哪些重复发生的事件?每次显示日期时,您都将被迫循环遍历每个重复发生的事件。权衡是缺点 #1,我认为这是必须重做这些计算的更好解决方案。
  2. 您可以编辑事件的特定实例。使用 Tim 的方法,如果 session 发生在节假日并且用户将其更改为前一天,您将如何做?使用此处描述的每个事件一个条目的方法,您可以只修改该事件的记录,轻松地在日历中移动单个事件。

关于php - 具有重复事件的数据库的优化设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4634699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com