如何创建谷歌日历等数据库结构

时间:2015-05-27 09:20:14

标签: mysql database database-design data-structures database-schema

我有一个用户有个人日历的项目。在日历中,用户可以创建聊天,写笔记,保存文件等。这有点像谷歌日历。所以我们有两个表Users和Calendar(它是日期表和另一个实体的链接表(注释,文件等))。 数据库结构看起来像db strucutres

但是我们遇到了一些问题。对于一个用户,我们在日历中生成365行(或闰年为366),因此如果我们有100个用户,则每年必须生成36500行...我认为这不是一个好方法。你能推荐我解决这个问题的好方法吗?

1 个答案:

答案 0 :(得分:1)

您不希望为一年中的每一天存储一行。如果用户当天没有活动,那么这是多余的,如果当天有多个活动,则无效。

用户拥有多个(或一个)日历

日历包含多个事件

事件从日期时间开始,到日期时间结束

(或从日期开始,到日期结束,是allDay事件)

您可能会发现在某些时候需要重复发生的事件,在这种情况下,事情会很快变得复杂。为此,请使用RFC 5545 RRules和ExRules,并使用物化视图创建“虚拟”事件。