数据库设计
定义通知
以notification_definition开头的数据库表,用于定义通知。这个就好像是Java中的Class,实例(Object)通过Class生成;同样的,我们先定义通知的内容,发送方式,使用的模板,接收人等等信息,然后根据定义产生具体的通知。
notification_definition:定义的主体
notification_definition_general:定义通知的基本信息
notification_definition_content:定义通知的内容
notification_definition_observer:定义通知的观察者,用于接收或者查看通知
notification_definition_observerr_expand_snapshot:接收者如果是“全部”,“莫某部门”这样的一类用户时,在接收者主表保存“全部”这样类型的接收者时,将当时那个瞬间“全部”的用户展开来保存到这个表中,比如当时整个公司全部只有20个人,则在这个表展开来就有20条记录,后面如果公司再新进新人,则新人不包含。
基本信息
不管是定义还是根据定义产生的实际通知,他们都共享一些基础信息。
* notification_template:通知模板表
* notification_category:分类表
* notification_post_method:有些通知是需要实际发送给接收人,比如短信,邮件等都是发送到具体的个人;有些是不需要发送的,比如公告类型的通知,这个公告并不会实际发送到每个接收者那里,而是只挂在服务器端,可以查看这个公告的人看到的都是同一个公告,并不会发给每个人,因此表的命名使用了post而不是send这个单词。
通知发送
notification_send_history:用于记录发送历史。
# 通知发送后追踪
* notification:表示根据definition实际产生的通知(就好像Java Class生成的对象),这个notification可以被发送,比如短信,邮件等类型的notification,也可以没有被发送,比如公告类型的notification;不管有没有发送,这个notification都可以有追踪信息。
* notification_trace:表示notification追踪信息。
github地址
Java中台项目
https://github.com/wuda0112/foundation
数据库文件[DB-Design.mwb
https://github.com/wuda0112/foundation/blob/master/DB-Design.mwb