我想创建一个php日历应用程序。如果我想创建正常,每周,每月和每年的活动,该软件的最佳数据库设计是什么?
答案 0 :(得分:4)
我只想为事件的每次重复创建一个条目,直到某个视野。但是,这意味着如果他们扫描超过您的地平线日期,您将需要另一个表格来预测日期。也就是说,你需要一个事件表,其中包含每次重复事件发生时的一条记录(1月1日,1月8日,1月15日,...到12月),以及一个表,每条记录可用于播种未来年份(开始)日期:1月1日;重复:7;通过:2011)以便在2012年初(或用户请求查看2012+月份时),您可以生成未来事件。
这有两大缺点:
优势(IMO)超过了劣势:
答案 1 :(得分:0)
您可以在EVENT表中找到RECURRENCE_STATUS的列,该列可跟踪4个值,不会重复,每周,每月,每年。对当天事件的查询将是那些设置为当天发生的事件的联合,并且不会与那些重复的事件的集合重复,并且其初始日期与今天的差异是对于周,月和日的模0。一年的差异。日期数学计算比那更微妙(因为月份的天数不同),但结构应该足够了。