我想创建一个php日历应用程序.如果我想创建正常,每周,每月和每年的活动,该软件的最佳数据库设计是什么?
解决方法:
我只想为事件的每次重复创建一个条目,直到某个视野.但是,这意味着如果他们扫描超过您的地平线日期,您将需要另一个表格来预测日期.也就是说,你需要一个事件表,其中包含每次重复事件发生时的一条记录(1月1日,1月8日,1月15日,…到12月),以及一个表,每条记录可用于播种未来年份(开始)日期:1月1日;重复:7;通过:2011)以便在2012年初(或用户请求查看2012个月)时,您可以生成未来事件.
这有两大缺点:
>您的数据库有一整年的数据.但是,如果添加一整年的数据会破坏您的性能,那么您的系统可能功能不足. (似乎要求日历应用程序能够处理多年的日期)
>在事件期限结束时,您需要生成重复事件的未来日期.
优点(IMO)超过了缺点:
>显示日历时更容易数学.使用上面的Tim方法,如果用户加载2011年12月18日,您将如何计算当天应该放置哪些重复事件?每次显示日期时,您都将被迫循环遍历每个重复的事件.权衡是缺点#1,我认为这是更好的解决方案,必须重做这些计算.
>您可以编辑事件的特定实例.使用Tim的方法,如果某个假期开会并且用户将其更改为前一天,您甚至会怎么做?使用此处描述的每个事件一个条目的方法,您可以只修改该事件的记录,轻松地在日历中移动单个事件.
标签:php,mysql,cakephp
来源: https://codeday.me/bug/20190626/1297670.html