gpt4 book ai didi

database - 为日历应用程序布置数据库架构

转载 作者:行者123 更新时间:2023-12-01 06:46:30 27 4
gpt4 key购买 nike

我想编写一个日历应用程序。对于 DB 模式的工作而言,确实是经常出现的项目。我希望就如何组织这个问题提供一些意见。

如果用户创建一个事件,并输入它在每个星期一永远重复,会怎样?我如何将所有这些存储在数据库中?我无法创建无限事件。我是否只是在其中放了一张包含相关信息的表格,以便我可以计算出所有事件的去向?如果是这样,每次用户查看日历的新部分时,我都必须计算它们。如果他们翻阅几个月,但他们有大量的重复项目怎么办?

此外,当用户单击一个项目并说“在序列中编辑这个”而不是序列中的所有项目时,模式需要处理。然后我是否将一项从序列中分离出来?

更新 1

我根本没有看过 iCal。需要明确的是,我认为保存允许您计算重复项的信息,并分离出与序列不同的任何信息是存储它以便能够传输它的好方法。但是我认为在应用程序中,这太慢了,无法到处进行日期数学运算。

最佳答案

我一直在为同样的问题苦苦挣扎,实际上我在玩弄上面建议的“缓存表”的想法,但后来我遇到了一个似乎还没有代表的替代方案( suggested here )。
建立一个包含所有事件的表

EventID (primary key)
Description
StartDate
PeriodType - days, weeks, months, years
PeriodFreq - # of days, weeks, etc between events
EndDate
... other attributes that can be modified
然后为 添加一个表异常(exception) 到这些事件。该表使用一个复合键,由映射到事件表的 EventID 和一个实例 ID 组成,用于选择系列中的特定事件。
EventID (key)
InstanceID (key)
InstanceDate - the modified date of the exception
IsCancelled - a flag to skip this date when traversing the series
... other attributes that can be modified
它似乎使事件表保持规范化,并避免拆分系列来处理异常。

关于database - 为日历应用程序布置数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4653183/

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