mysql - 如何在MySQL数据库中表示 “Recurring Events”?

标签 mysql database-design

我正在开发一个应用程序,需要允许网站管理员安排“事件”并允许访问者预订事件的位置。

为了最大限度地减少管理工作,我需要允许管理员创建一个事件并将其标记为按计划重复发生。在大多数情况下,这将是“每周”,但在某些时候也可能需要“每两周”、“每月”等。

我一直在疯狂地试图弄清楚(已经有很多 Google 和 SO 搜索)如何在 MySQL 中对此进行建模。

我知道我需要将“事件条目”项目分开,然后仅在需要时将“事件实例”添加到日程表中(即第一人预订地点、日期到达、实例独立于事件编辑)系列等)

我似乎无法理解应该如何将其实际记录在数据库中而不感觉令人讨厌。谁能指出我正确的方向?

最佳答案

我一直在考虑类似的业余爱好项目。

我的结论是,维护一个单独的计划事件(实例)表和一个单独的重复事件表(即不使用重复事件的记录填充实例表)然后将重复事件合并到对查询的响应。

这还需要您实现一个查询 API,该 API 需要计划请求的开始和结束时间(或了解重复发生的事件和实例)。

并简化处理例如以下情况的情况:每周安排一个重复事件,然后将异常(exception)放入实例表中。

考虑一下 - 如果您为重复事件创建实例 - 有人安排了一个没有结束日期的每周事件。您在实例表中放入了多少条记录?您如何检测它们何时用完?当业主取消行程时,您如何处理?

查看 ical/vcalendar 文档以获取想法。

您可能还想了解 phpcalendar 等应用程序如何处理此问题。

关于mysql - 如何在MySQL数据库中表示 “Recurring Events”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832885/

相关文章:

php - 是否可以在 mysql 5.6 上运行 drupal 6

mysql - 具有多个插入的重复键更新

sql - 在 SQL 数据库中实现用户定义字段并为其建立索引

java - Neo4j - Java 堆空间。错误的查询或设置?

mysql - sql数据库可用性约束

database-design - 拥有多个账户的客户的银行的数据库结构

php - MySQL:相同的值不相同

MySQL连接错误

php - 更改 HTML <area> 元素的背景颜色

database - 制作通用链接表是个坏主意吗?