研究了一下站内短信系统的设计?
一般的还比较简单的,但CSDN的私信系统实现起来感觉比较难?就是那个发件箱列表,不知是如何实现?可以翻译为我发表的主贴或我回复的主贴按时间排序!但这个在数据库表上如何设计比较好,查询上又如何实现呢?大家提供点建议!

解决方案 »

  1.   

    messid:自动增加
    fromid:发送者id
    toid:接受者id
    repymessid:被回复消息的id,主贴则为0
    title:标题
    message:内容
      

  2.   

    字段 类型 Null 默认 注释 
    mid   私信编号 
    receiver   收信人 
    sender   发信人 
    title 标题 
    message    内容 
    parent  上一级 
    ptime   发布时间 readed  是否读过:0未读,1读过 
    managestate  这是我设计的表,哪果是主贴,则parent 为0,如果是回复贴,则parent为主贴的id但这个查询时我发现难以实现CSDN的效果
    CSDN的发信箱显示的就是主贴的ID,含义应是:
    查询主贴:有以下特点:我发布的或我回复过的,按时间排序主贴特征:parent=0
    我发布:  sender=我
    我回复的:回复中sender=我,parent记录中(主贴中),sender可能等于我,也可能等于receiver就是求一sql,得到我发布的主贴,或我回复的主贴,按我回复和发布的时间排序如查SQL不能实现,如何改数据表?
      

  3.   

    可以做类似于BBS的数据设计,
    只不过分类、回帖的叫法不同。排序就在数据库order by
      

  4.   

    大家可仔细看一下CSDN的发件箱功能他是这样的,如果是我发的件或我回复的信件,都是显示的如果我对一个信件进行了回复,显示提前信箱的标题和内容的id理论上应是主贴的id这个显示的主贴的列表,其中还有空间吧主回复的信息$sql="select * from table where sender=我 order by ptime desc";回返回我所布的所有贴子,但有是主贴,有的是回复贴,可能有多个回复贴是同一个parent,而主贴的parent为0我现在想要的是,其中主贴的部分按回复时间排序
      

  5.   

    看看这个行不行select * from table p
    where
     p.parent = 0
     AND
     p.id = (select parent, max(ptime) from table where parent = p.id group by parent)
      

  6.   

    哈哈,我做过。
    SNS这一类的站内信都是这要种形式的
    你下个uchome的系统去看看吧。。
      

  7.   

    主表:
    mid  私信编号
    receiver  收信人
    sender  发信人
    title 标题
    message    内容
    //parent  上一级
    ptime  发布时间rreaded  收信人是否读过:0未读,1读过 默认(0)
    sreaded  发信人是否读过:0未读,1读过 默认(1)
    rdel  收信人是否删除:0未删,1已删 默认(0)
    sdel  发信人是否删除:0未删,1已删 默认(0)
    从表:
    rid 
    mid
    author
    msg
    ptime在你的基础上面分成两个表来..看看行不
      

  8.   

    uchome的表结构。
    pmid  私信编号 
    msgfrom 发信人 
    msgfromid 发信人 id
    msgtoid 收信人 id
    folder 类型enum('inbox', 'outbox')
    new   是否已读
    subject 标题
    dateline 发送日期
    message  内容
    delstatus 删除状态
    related  关联id 也就是上级id
      

  9.   

    把SQL查询又看了一遍
    已解决!加了一个字段,用了子查询select * from table p
    where
     p.parent = 0
     AND
     p.id = (select parent, max(ptime) from table where parent = p.id group by parent)理解起来有点难,以后再研究吧
      

  10.   

    妈的,你看过uhome的源代码吗