Discuz Ucenter短消息设计
UCenter中关于短消息这一块的数据表结构如下:

不大理解这里的delstatus/related二个字段的作用。
delstatus语义上应该是标识该消息的删除状态
related语义为关联,
现在试着以admin给yibin001发一件消息

所执行的SQL语句
SELECT count(*) FROM `ucenter`.uc_pms WHERE msgfromid='1' AND msgtoid='2' AND folder='inbox' AND related='0'
INSERT INTO `ucenter`.uc_pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES ('admin','1','2','inbox','1','测试消息','1235570029','0','测试消息','1')
SELECT count(*) FROM `ucenter`.uc_pms WHERE msgfromid='2' AND msgtoid='1' AND folder='inbox' AND related='0'
INSERT INTO `ucenter`.uc_pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES ('admin','2','1','inbox','0','测试消息','1235570029','0','测试消息','0')
INSERT INTO `ucenter`.uc_pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES ('admin','1','2','inbox','1','测试消息','1235570029','1','测试消息','1')
REPLACE INTO `ucenter`.uc_newpm (uid) VALUES ('2')
以yibin001登录并回复短消息
SELECT count(*) FROM `ucenter`.uc_pms WHERE msgfromid='2' AND msgtoid='1' AND folder='inbox' AND related='0'
UPDATE `ucenter`.uc_pms SET subject='回复', message='回复', dateline='1235570298', new='1', fromappid='1' WHERE msgfromid='2' AND msgtoid='1' AND folder='inbox' AND related='0'
SELECT count(*) FROM `ucenter`.uc_pms WHERE msgfromid='1' AND msgtoid='2' AND folder='inbox' AND related='0'
INSERT INTO `ucenter`.uc_pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES ('yibin001','2','1','inbox','1','回复','1235570298','1','回复','1')
REPLACE INTO `ucenter`.uc_newpm (uid) VALUES ('1')
光看这部分有点晕,没看出delstatus/related二个字段的作用。

删除状态 个人认为 是一个标识,因为现在的大部分系统中的删除,并不是实际意义的删除,只是改变了显示状态,在检索的时候不被检索而已,这样方便日后回档。