网友的一个问题:http://topic.csdn.net/u/20081224/11/65d0f78d-f8d9-4229-9a5b-038f676d2ce8.html

在日历中有个功能就是可以设置重复的事件,比如我在日历中加入一个
事件,然后可以设置这个事件按天,或者按星期,或者按月,或者按年重复提醒。
如果每个事件都是一条记录的话,肯定不可行,会导致过多的记录。但如果
是所有重复事件加个标志位使它成为一条记录的话也有个问题。就是需求中在
这一系列重复事件中我可以单独改一个事件而不影响其他事件。举个例子,我建一个事件,然后指定
这个事件在2008年12月份中的每天的12点,那我在日历中12月的每一天都可以看到这个
事件,然后我可以单独修改12月22日的事件而不影响其他的事件。这样肯定不能用一条记录。
想请教下数据库该如何设计,可以参考google日历的事件重复功能,功能差不多

我的个人看法如下:

我们出发事件的间隔是多少呢?

欢迎访问老紫竹的网站( http://www.java2000.net )和我在CSDN的博客( http://blog.csdn.net/java2000_net ); 如果是一小时,那么我们每隔1小时进行一次检测就行了。
如果是1分钟.. 一秒钟。。。 那么如果用户量大,那是一个灾难。
需求不同,设计不同。我认为一个小时已经很不错了。

如果是每天,那就太简单了,每年才触发365次,这类功能用
Timer
或者
Quartz都可以轻松实现。

忘了说了,每个人设置的事件,当然要单独保存一条记录。
目前一般的数据库,单个表能保存几十亿的数据,你可以算算,那些能支持多少人同时使用?太恐怖了吧!
就算每个小时设置一个,一个用户一年才 365×24,
实际上,每个人平均有100个就不少了。呵呵!而且,我们可以将那些过期的数据移动到历史表里面去

最后,数据库保存方式,可以将日期分别保存为年,月,日,星期,小时
那些不需要指定某些数据的,就保存为-1.这样查询时,就可以用

你的触发应该分成年度,月度,每日,定时等分别进行查询处理。也就是不同的定时器。他们同时运行。
比如每年的12月25日,可以写成
select * fomr TaskList where month=12 and day=25 and hour=-1

这样就行了。

类似的,其它的触发也可以类似的书写。

欢迎访问老紫竹的网站( http://www.java2000.net )和我在CSDN的博客( http://blog.csdn.net/java2000_net );

关于多用户日历提醒功能的数据库设计相关推荐

  1. android 苹果日历提醒功能,一日一技 | 在 iOS 和 Android 之间同步日历、联系人和提醒事项...

    原标题:一日一技 | 在 iOS 和 Android 之间同步日历.联系人和提醒事项 寸有所长,尺有所短,这句话用在 iOS 与 Android 上再恰当不过了.两大阵营用户在「谁更好用」这个问题上一 ...

  2. Android MIUI日历闹钟提醒功能实现

    产品经理要求添加日历事件,并给此事件增加日历闹钟提醒功能,MIUI系统闹钟提醒无法自动设置,而oppo/vivo中日历中也没有闹钟提醒的功能. 解决思路 1)查找数据库表结构是否存在提醒字段 Andr ...

  3. app如何打开了request url_手机日历app内如何打开节日提醒功能?支持提前提醒节日的云便签...

    我们一年中要度过的节日有很多,除了法定节假日之外,还有其他的很多节日,例如西方传来的圣诞节.万圣节,国际性的节日例如父亲节.母亲节等,还有一些传统节日例如小寒.冬至.腊八等,这些都是不放假的. 有时候 ...

  4. mysql 评论回复表设计_数据库设计——评论回复功能

    1.概述 评论功能已经成为APP和网站开发中的必备功能.本文主要介绍评论功能的数据库设计. 评论功能最主要的是发表评论和回复评论(删除功能在后台).评论功能的拓展功能体现有以下几方面: (1)单篇文章 ...

  5. 私信基本功能数据库设计

    上一篇写了基于resin4.0+websocket实现私信功能服务端消息推送文章,趁热打铁,在写一篇关于私信功能的数据库设计文章,非代码篇,希望想对第一次做设计并开发私信功能的同学有点帮助. 项目需求 ...

  6. 【mysql】期末数据库复习指南(《数据库系统概率》知识点总结,数据库系统原理,数据库设计课程复习)

    数据库试卷题型: 选择题 20*2 =40 填空题 10*1 =10 简答题 3*4 =12SQL 30分+ 插入 2 建视图 2 单表查询条件 2 平均成绩avg 2 多表查询 4 触发器 存储函数 ...

  7. 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc

    网上测试系统 PAGE28 / NUMPAGES29 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 ...

  8. 带有日历提醒的软件,电脑桌面便签可设定日历提醒

    放在电脑桌面上使用的便签软件,工作族能找到很多,电脑便签软件以其小小的界面悬挂在电脑桌面深受大家的喜欢,一来不影响正常办公,二来悬挂的小窗口可以实时起到提醒大家的作用. 比较好用的桌面便签软件一定要带 ...

  9. 安卓日历每日提醒_android 设置系统闹钟和系统日历提醒

    现在有一个定时提醒的功能, 用 AlarmManager 自己来做,有多少坑做过的都知道.(应用被kill, 应用保活,息屏,关机重启,多版本兼容问题...).要自己做一个完善的不是 1-2天就能搞定 ...

最新文章

  1. Linux之systemctl命令的使用
  2. python语言能干什么-Python这么火到底能干啥?
  3. vscode怎么设置默认浏览器?(不成功)
  4. 代码单元测试工具:gmock
  5. php5.6代码转换7.1,通过PHP5.6源代码在WINDOWS 7下进行编译生成(最详细步骤)
  6. 以太坊EVM在安全性方面的考虑
  7. 爬取知乎回答点赞数_python3 爬虫 之只需要问题id爬取知乎问题全部回答
  8. Python与R语言优缺点比较——“术业有专攻”
  9. mysql中括号_如何快速学习mySQL数据库常规通配符及运算符的用法?
  10. html加拼音注释,古诗加拼音注释版.doc
  11. 文科妹学 GitHub 简易教程(转)
  12. 学习商业汇票 ---- 银承汇票业务
  13. CAN总线基础知识点
  14. MogaFX外汇储备与经济危机
  15. 房产门户企业织梦模板/DedeCMS房地产楼盘网站模板下载
  16. 秋招攻略—如何成为一名图像算法攻城狮(上篇)—知识学习篇
  17. java学习方法-浅谈软件开发的神速进步
  18. Nodejs使用实例——网站登录验证
  19. 10款最好的Photoshop替代软件
  20. Windows打开WLS(为使用Ubuntu)

热门文章

  1. Java 将图片转换为素描图
  2. IOS 分享 牛人 Demo
  3. GB9706.1检测项目详解(四)-说明书补充解释
  4. 第九章 习惯六 统合综效——创造性合作的原则
  5. Ubuntu16 Samba实现物理机与虚拟机之间文件共享
  6. 剑侠情缘服务器修改,剑侠情缘手游上线赠送物品的两种修改方法
  7. TypeScript基础知识(手写笔记)
  8. 【蒲公英学术】内容包含:冰湖灾害监测评价、国土空间、生态系统服务评估、VSD模型、机器学习
  9. 联想20Q6A00HCD笔记本电脑
  10. 2019上海总部银联商务软件开发实习生C++--面试