php 提醒设计 重复,php – 具有重复事件的数据库的最佳设计

我想创建一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值