站内信设计文档

一、数据库结构

1)发信表,存邮件内容(CRM_MessageText):

字段

类型

说明

备注

TextId

int

信件id

主键,自增长

SendId

nvarchar(50)

发信人id

即邮件作者

Titel

nvarchar(50)

信件标题

Text

text

信件正文

nvarchar(max)看需求

MsgType

int

发送类型

0所有人;1指定某人

PostDate

datetime

发信时间

2)收信表,存收信用户和状态(CRM_Message):

字段

类型

说明

备注

MessageID

int

收信id

主键,自增长

TextId

int

信件id(外键)

MessageText表主键

RecId

nvarchar(50)

收信人id

Statue

int

信件状态

0未读,1已读,2删除

MsgDate

datetime

收信时间

注:发信表中的1条数据可以发送给收件表多个人,是1对多关系。

二、功能描述

1)情景1:发起站内所有人都收到的信息

① 作者(张三)发送邮件,不指定用户(MsgType=0),仅在发件表表添加一条记录:

INSERT INTO [CRM_MessageText] ([TextId],[SendId],[Titel],[Text],[MsgType],[SendDate]) VALUES('张三','标题','信件正文',0,'时间')

②收件人(李四)登录后,加载并处理:

a.将发信表,MsgType=0的记录,取出TextId插入到收信表(已有数据不保存)

SELECT TextId from [CRM_MessageText] where MsgType=0and TextId not in (select TextId from CRM_Message where RecId='李四')--可能有多条记录,程序循环插入收信表

B.插入收信表

INSERT INTO [CRM_Message]([TextId],[RecId],[Statue],[GetDate]) VALUES(1,'李四',0,'时间')

c.读取收信表

select * from CRM_Message a left join CRM_MessageText b on a.TextId=b.TextId where a.Statue !=2and a.RecId='李四' order by b.SendDate desc

至此李四获得了最新的全站信息,且不重复

2)情景2:发起站内指定N个人收的信息

①作者(张三)发送信件,指定了张三等人(MsgType=1),除了发件表添加一条记录以外,还要在收件表添加记录给张三

a.给发信表添加记录(注意:MsgType=1)

INSERT INTO [CRM_MessageText] ([TextId],[SendId],[Titel],[Text],[MsgType],[SendDate]) VALUES('张三','标题','信件正文',1,'时间')--insert后获取这条记录TextId,用于写入收信表

b.给收信表添加记录(这就是和情景1的区别,此步骤是在张三环节完成。情景1是拉数据;情景2是推数据。)

INSERT INTO [CRM_Message]([TextId],[RecId],[Statue],[GetDate]) VALUES(2,'李四',0,'时间')--N个收信人,添加N条数据

②收件人(李四)登录后,获取收信表写入的信息

select * from CRM_Message a left join CRM_MessageText b on a.TextId=b.TextId where a.Statue !=2and a.RecId='李四' order by b.SendDate desc

3)综合情景1和情景2,收件人李四登录后是做了两件事:

①拉取全站信息(MsgType=0),写入收件表(CRM_Message),如果没有全站信息就不插入;

②读取收件表(CRM_Message),此时读取的信件是包含了:全站信息+某人指定给他的信息。

4)修改信息的状态

①将状态改为已阅读(张三打开邮件后自动修改此状态)

UPDATE [CRM_Message] SET [Statue] = 1WHERE MessageID = 1

②将状已阅读设置为未读状态(手动点击按钮改此状态,某些情景需要此功能)

UPDATE [CRM_Message] SET [Statue] = 0 WHERE MessageID = 1

③将状态改为已删除(点击删除按钮。已删除的信息不会被再次拉取,也不会出现在我的信息列表中)

UPDATE [CRM_Message] SET [Statue] = 2 WHERE MessageID = 1

5)情景1可以有效减少数据库冗余。

本文配套源代码CSDN下载地址:http://download.csdn.net/detail/djk8888/9687192

站内信设计文档及源代码下载相关推荐

  1. 单系统站内信设计概述(满足百万级信息)

    基本功能 点到点的消息传送: 用户给用户 管理员给用户 点到面的消息传送 管理员给用户群 少量用户(10-999) 对于用户非常少的情况,没有必要深入的考虑数据库的优化,采用简单的表设计: 如表mes ...

  2. 基于百万级别的站内信设计

    基本上现在的网站都会有站内信功能,主要分为少量(10-999用户),中量(1000-99999用户),大量(100W用户)不同的站内信架构,消耗存储空间,和效率也是不同的.这次要设计的是基于百万级别的 ...

  3. 百万级用户量的站内信设计

    1. 方案描述 该方案用于系统站内信功能模块在百万级用户量情况下的效率问题,只是后台管理员给前台用户发送站内信,用户与用户之间的发送不在讨论内. 2. 方案详情 假设系统的用户量达到了200W,活跃用 ...

  4. android图片识别代码,android orc 图片文档识别源代码 - 下载 - 搜珍网

    压缩包 : wordsnap-ocr-self.rar 列表 wordsnap-ocr-self/.classpath wordsnap-ocr-self/.project wordsnap-ocr- ...

  5. 小康淘宝站内信群发 官方

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  6. 小康淘宝站内信群发 v5.50 怎么用

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  7. 任天堂遭史上最严重黑客攻击:完整源代码、设计文档及技术演示泄露

    十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 任天堂的这一波泄露事件,可以说是相当惨烈. 多少文件被泄露? 超过2TB. 涉及什么内容? 完整源代码.设计文档,近乎一切用于构建Wii主机 ...

  8. 单系统站内信数据库设计思路

    第一版设计 需求 :单用户之间通信(融合了用户反馈需求) 数据库设计:Message内容和收发者存在一张表中 message表: 这里一条Message存两次,类似邮件服务. status:已读.未读 ...

  9. mysql群发消息_百万级用户量的站内信群发数据库设计

    随着WEB2.0的发展,用户之间的信息交互也变得十分庞大,而且实时性要求越来越高.现在很多SNS网站和一部分CMS网站都广泛地应用了站内信这一模块,这个看似简单的东西其实背后隐藏着很多需要设计师重视的 ...

  10. mysql群发消息_分享网站群发站内信数据库表设计

    本文和大家分享一下网站站内信实现表设计的功能.需要的朋友可以参考下. "站内信"不同于电子邮件,电子邮件通过专门的邮件服务器发送.保存.而"站内信"是系统内的消 ...

最新文章

  1. android ble不配对接收广播数据_蓝牙低功耗(BLE)学习笔记_0
  2. 2022THE重量级大学排名:97所内地高校上榜!
  3. Linux常用命令大全-toolfk程序员在线工具网
  4. MapReduce基础开发之一词汇统计和排序(wordcount)
  5. LinkedList 源码分析(JDK 1.8)
  6. 嵌套的Try-Catch块--------异常处理(3)
  7. java中对象模型与数据库中的关系模型
  8. DCMTK:缩放DICOM图像
  9. Python学习之布尔和数字
  10. HMM学习最佳范例一:介绍
  11. Android应用程序组件间通信(二)——IntentFilter类简介
  12. envi反演水质参数_基于大气校正法的Landsat 8 TIRS地表温度反演
  13. ASP.NET 英语词典
  14. 渗透测试(445端口)
  15. VMware Fusion 虚拟网络配置
  16. 高数 | 【多元函数微分学】全微分不变性、隐函数求导辨析
  17. Kali BeEF MSF的使用
  18. PA、PB及RS功率计算
  19. 一款APP从设计稿到切图过程全方位揭秘 Mark
  20. 学渣的刷题之旅 leetcode刷题 9. 回文数

热门文章

  1. 创客教育发展中的科技造物原理
  2. python randn_numpy.random.randn()用法
  3. c语言.jpg图片转成数组_图片可以转Word吗?教你两种方法轻松转换
  4. 现有一循环队列,其队头指针为front,队尾指针为rear;循环队列长度为N。其队内有效长度为?
  5. 微信HOOK 3.4.5.27 CALL信息留根-2021-12-27
  6. Qt编写安防视频监控系统58-子模块2窗口信息
  7. android集成环信客服云_2019.6.12
  8. Uipath 对Excel中重复的行进行筛选解决方案以及DefaultVaule方法的使用
  9. 事物(Transaction)
  10. 山东养殖业稳中有升,饲料企业较乐观