gpt4 book ai didi

php - iCal 后端 - 重复日期

转载 作者:行者123 更新时间:2023-11-29 07:00:39 26 4
gpt4 key购买 nike

我正在构建一个使用 FullCalendar 作为前端的日历系统。后端将是 MySQL/PHP。

它将存储由应用程序生成和插入的用户公共(public)约会列表。这些约会将是一个单一的事件,将在同一天开始和结束。此外,由于个人 promise ,用户将能够在日历中标记他们的不可用时间。后一种功能需要使用重复事件。我一直在考虑使用基于 iCal 的结构,而不是重新发明轮子。这篇文章很有帮助 ical-field-list-for-database-schema-based-on-ical-standard确定数据库结构。

我已经创建了允许用户输入必要数据以存储私有(private)单次/定期约会的申请表。提交表单后,数据通过 Ajax 发送到服务器。我找到了一个很棒的 PHP 脚本,它可以根据用户输入的参数以其 native 格式或使用 RRULE 生成重复日期数组。

我不确定存储/检索这些重复日期的最佳方式是什么。该应用程序需要能够为用户呈现日历 View ,包括公共(public)和私有(private)日期。该应用程序还需要能够返回例如在给定时间/日期期间可能空闲的所有用户。

以 iCal 格式存储所有事件并能够根据需要检索事件是否足够?我预见的问题是重复事件不容易搜索,因为它们的参数必须即时扩展?我正在考虑为每个单独的事件(生成的)创建第二个表,并引用回创建它的原始 RRULE。我希望限制用户可以输入的重复日期的数量,以防止用户在接下来的 100 年中每天都输入一个事件!我认为这种方法也可以编辑最初由重复规则创建的单个事件。

这是一个好的方法,还是有更好的方法?

最佳答案

看看when building a calendar app, should i store dates or recurrence rules in my database? .

您应该存储与有效性信息关联的 rrule、exrule、rdate 和 exdate(以便能够跟踪随时间的变化:例如,如果您的用户可能想回顾过去发生特定事件的时间,以及是否规则在发生和他/她回头看的时间点之间发生了变化),对于发生次数有限的事件,请预先计算一个时间窗口的开始和结束时间,以便于查询,并有一个滚动窗口,您可以在一个表中找到所有事件的发生次数。当用户在时间窗口外查找事件时(很少有人会在一年前或 future 一年以上查找),您计算特定于用户请求的时间窗口的相关事件并即时生成它们.

关于php - iCal 后端 - 重复日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10320644/

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