位置: 编程技术 - 正文

分享网站群发站内信数据库表设计(群发网址)

编辑:rootadmin
“站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。

  “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说“站内信”的群发是如何实现的。

  第一种情况,站内的用户是少量级别的。(几十到上百)

  这种情况,由于用户的数量非常少,因此,没有必要过多的考虑数据库的优化,采用简单的表格,对系统的设计也来的简单,后期也比较容易维护,是典型的用空间换时间的做法。

  数据库的设计如下:表名:Message

  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);Message:站内信内容;Statue:站内信的查看状态;PDate:站内信发送时间;

  如果,某一个管理员要给所有人发站内信,则先遍历用户表,再按照用户表中的所有用户依次将站内信插入到Message表中。这样,如果有个用户,则群发一条站内信要执行个插入操作。这个理解上比较简单,比较耗损空间。

  某一个用户登陆后,查看站内信的语句则为:

  Select * FROM Message Where RecID=‘ID' OR RecID=0

  第二种情况,站内的用户中量级别的(上千到上万)。

  如果还是按照第一种情况的思路。那发一条站内信的后果基本上就是后台崩溃了。因为,发一条站内信,得重复上千个插入记录,这还不是最主要的,关键是上千乃至上万条记录,Message字段的内容是一样的,而Message有大量的占用存储空间。比方说,Message字段有个汉字,占用个字节,那么5万条,就占用×=个字节=M。简单的一份站内信,就占用M,这还让不让人活了。

  因此,将原先的表格拆分为两个表,将Message的主体放在一个表内,节省空间的占用

  数据库的设计如下:

  表名:Message

  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);MessageID:站内信编号;Statue:站内信的查看状态;

  表名:MessageText 

  ID:编号;Message:站内信的内容;PDate:站内信发送时间;

  在管理员发一封站内信的时候,执行两步操作。先在MessageText表中,插入站内信的内容。然后在Message表中给所有的用户插入一条记录,标识有一封站内信。

  这样的设计,将重复的站内信的主体信息(站内信的内容,发送时间)放在一个表内,大量的节省存储空间。不过,在查询的时候,要比第一种情况来的复杂。

  第三种情况,站内的用户是大量级的(上百万),并且活跃的用户只占其中的一部分。

  大家都有这样的经历,某日看一个网站比较好,一时心情澎湃,就注册了一个用户。过了一段时间,由于种种原因,就忘记了注册时的用户名和密码,也就不再登陆了。那么这个用户就称为不活跃的。从实际来看,不活跃的用户占着不小的比例。

  我们以注册用户2百万,其中活跃用户只占其中的%。

  就算是按照第二种的情况,发一封“站内信”,那得执行2百万个插入操作。但是其中的有效操作只有%,因为另外的%的用户可能永远都不会再登陆了。

  在这种情况下,我们还得把思路换换。

  数据库的设计和第二种情况一样:

  表名:Message

  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);MessageID:站内信编号;Statue:站内信的查看状态;

  表名:MessageText 

  ID:编号;Message:站内信的内容;PDate:站内信发送时间;

  管理员发站内信的时候,只在MessageText插入站内信的主体内容。Message里不插入记录。

  那么,用户在登录以后,首先查询MessageText中的那些没有在Message中有记录的记录,表示是未读的站内信。在查阅站内信的内容时,再将相关的记录插入到Message中。

  这个方法和第二种的比较起来。如果,活跃用户是%。两者效率是一样的。而活跃用户的比例越低,越能体现第三种的优越来。只插入有效的记录,那些不活跃的,就不再占用空间了。

  以上,是我对群发“站内信”的实现的想法。

作者:万仓一黍出处:

推荐整理分享分享网站群发站内信数据库表设计(群发网址),希望有所帮助,仅作参考,欢迎阅读内容。

分享网站群发站内信数据库表设计(群发网址)

文章相关热门搜索词:分享群发是什么意思,群发站内信,站群发布,8222群发网址,群发网址链接需要注意什么,群组分享网站,网站群发软件,群发网址,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL数据库的高级sql注入的一些知识 [概要]这篇文章讨论常用的"sql注入"技术的细节,应用于流行的MsIIS/ASP/SQL-Server平台。这里探讨有关这种攻击各种可以注入程序访问数据和数据库防范的

SQL批量插入数据几种方案的性能详细对比 公司技术背景:数据库访问类(xxx.DataBase.Dll)调用存储过程实现数据库的访问。技术方案一:压缩时间下程序员写出的第一个版本,仅仅为了完成任务

mysql 数据库中索引原理分析说明 下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查安字,就会很自然地

标签: 群发网址

本文链接地址:https://www.jiuchutong.com/biancheng/349804.html 转载请保留说明!

上一篇:SQL高级应用之使用SQL查询Excel表格数据的方法(sql高级写法)

下一篇:SQL数据库的高级sql注入的一些知识(sql语句的高级用法)

  • 小规模30万免税包括30万吗
  • 不缴或少缴应纳税款的处罚措施
  • 物业公司增值税加计扣除
  • 环境保护税的应税污染物有哪些
  • 财务刷卡手续费怎么处理
  • 租入厂房再转租账要怎么做
  • 公司年末报表
  • 专票如何开具
  • 申报后发现成本算错了
  • 当月开票当月付款分录
  • 抵押住房属于
  • 商业企业库存商品和销售对不上
  • 以前年度的负债没挂账怎么办
  • 银行汇兑计入哪个会计科目?
  • 税收征管法实施条例
  • 公立医院规章制度
  • 微信提现收取手续费多少钱
  • win10如何设置右键
  • 什么是电力市场
  • 挖机所有权需要办理什么手续吗
  • win8.1怎么用
  • 收入成本配比原则
  • 社保缴费半年
  • 对公账户转私人账户有限额吗
  • 车保险理赔的钱多久到账
  • 小规模纳税人进项可以抵扣吗
  • PHP:imagecreatefromstring()的用法_GD库图像处理函数
  • 销项税和进项税抵扣的会计分录
  • 微信接口开发平台
  • 减值准备递延所得税资产
  • 静态显示方式
  • php引用类型
  • 印花税的相关问题
  • torch.nn.Conv3d
  • Chat GPT5如果问世会对世界产生什么影响?以及未来chat gpt 5会取代什么类型的工作。
  • http命令
  • 单位应缴住房公积金
  • 母公司可以免子女税吗
  • Windows OpenGL ES 图像曝光度调节
  • php fgetc
  • 公司开电费发票该怎么入账?
  • 建筑设备租赁如何交税
  • 财务做帐的金额怎么算
  • 企业购买理财产品收益要交税吗
  • 企业清算是怎么做账的
  • 主营业务成本包括哪些
  • 公司还没有注销但是银行账户已经去注销了
  • 企业自建房产提款流程
  • 融资租赁业务利润怎么算
  • 资产报废折旧
  • 对方公司收钱不开发票怎么办
  • 生育津贴案件
  • 一般纳税人加工费怎么做账
  • sql server的介绍
  • sqlserver如何设置主键
  • 值得收藏的一元硬币
  • Windows10安装包下载
  • 在u盘里装win7
  • win10mobile下载官网
  • linux 安装jmap
  • win2008个性化
  • 如何管理和维护宿舍卫生
  • cocos2dx3.4 Menu
  • 日亚海淘官网
  • 常用的linux命令大全
  • perl怎么读取文件
  • perl的哈希
  • vue路由router
  • 去掉字符串中的某个值
  • angular.js
  • jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
  • jquery图片左右切换
  • javascript原生函数的源代码
  • 陕西新版电子税务局怎么使用
  • 包头市税务局赵文胜
  • 四川税务法人实名采集
  • 葫芦岛市税务局电话
  • 纳税申报表有哪几种类型
  • 烟叶税额
  • 宁阳旧城改造名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设