我有一个用户有个人日历的项目。在日历中,用户可以创建聊天,写笔记,保存文件等。这有点像谷歌日历。所以我们有两个表Users和Calendar(它是日期表和另一个实体的链接表(注释,文件等))。 数据库结构看起来像
但是我们遇到了一些问题。对于一个用户,我们在日历中生成365行(或闰年为366),因此如果我们有100个用户,则每年必须生成36500行...我认为这不是一个好方法。你能推荐我解决这个问题的好方法吗?
答案 0 :(得分:1)
您不希望为一年中的每一天存储一行。如果用户当天没有活动,那么这是多余的,如果当天有多个活动,则无效。
用户拥有多个(或一个)日历
日历包含多个事件
事件从日期时间开始,到日期时间结束
(或从日期开始,到日期结束,是allDay事件)
您可能会发现在某些时候需要重复发生的事件,在这种情况下,事情会很快变得复杂。为此,请使用RFC 5545 RRules和ExRules,并使用物化视图创建“虚拟”事件。