至于站内信的数据库设计

站内信:网站运转人士可以向单个(单发)或五个(群发)用户推送音讯,站内信其实就是向数据库中插入一条条笔录。

数据库设计:

message【站内信发件箱表】{每回运行人员发送一条站内信(无论是单发或是群发)就会在发件箱表中添加一条记下}

 ca88官网 1

 表字段:ID、SendID、RecID、MessageID、Statue、DateTime

messagetext【站内信发件内容表】{每回运维人士发送站内信的内容就会保留到站内信发件内容表中}

ca88官网 2

表字段:ID、Title、Message、PData

ca88官网,messageuserinfo【站内信接收箱表】{用户站内信收件箱}

ca88官网 3

表字段:ID、SendID、RecID、MessageID、Statue、DateTime

 

业务逻辑:在运转人员发送了一条站内信后,当用户再度登录时就会刷新历史站内信,而那个不活跃的用户就不会更新站内信。

气象:运营人员向有个别(单发)或八个(群发)用户发送站内信

添加发件内容:向messagetext站内信发件内容表中添加一条内容记录
{那里先添加messagetext站内信发件内容表发出一条记下,后边message站内信发件箱表中才有MessageID可以提到}

添加发件人发件记录:向message站内信发件箱表中添加一条发送记录
{备注:如若是单发RecID则是内定用户的UserID,假使是群发RecID则是0。(0意味全数用户)}

用户登录时刷新与协调有关的站内信,并将数据增进到messageuserinfo站内信接收箱表

  1. 询问条件:【发件人不是自身】并且【收件人是自个儿如故收件人是全数人】并且【自个儿收件表中不存在的记录】

    select m.id from Message as m where (m.recid='所有人' or m.recid='自己的ID') and m.sendid!='自己的ID' and m.MessageID not in (select u.messageid from MessageUserInfo as u  where u.recid='自己的ID')
    

      

  2. 将有关的站内信信息添加到自身的收件表中,并标记未读。

    1.   将地点【查询条件】中询问出来的id音信用做查询message站内信发件箱表的条件

      select * from message  where id=上面的m.id
      

        

    2. 将取拿到message站内信发件箱表数据增进到messageuserinfo站内信接收箱表

  3. 询问出自个儿的站内信记录

    select u.ID,u.RecID,m.Title,m.Message,u.Statue,m.PDate from messageuserinfo as u join messagetext as m on u.MessageID = m.ID where u.RecID='自己的ID'
    

      

     

相关文章