站内短信的数据库怎么设计比较合理?就只要实现最基本的发送、接收和搜索功能就行。分不多,先谢啦!

解决方案 »

  1.   

    我也没做过。不过我感觉要是我做的话,我会建立两个表一个是发件箱,一个是收件箱发件箱:
    id 
    收件人
    标题
    短信内容收件箱
    id 
    发件人
    标题
    短信内容
    是否已经阅读就这样的一个简单表,应该可以了吧。个人意见,仅供参考
      

  2.   

    一个表就够了ID 
    SenderUser
    ReceiveUser
    Title
    Content
    PostTime
    IsRead
      

  3.   

    那就加个字段了
    DelID 
    为 1 的时候 表示 同时保存在 发件箱和收件箱
       2 的时候 表示 从发件箱删除 但未从收件箱删除
       3 的时候 表示 同2相反
          删除的时候 判断 是否该字段是否为1 不为1则表示已从发件箱或者收件箱之一删除,直接删除 为1时候 如果是发件人的话则改成 2 收件人改成 3 ,这就在程序里面控制了。不过你也可以见两个表,,不过那样就会产生一定数据冗余,,个人选择了
      

  4.   

    我最近刚好做了一个这个功能的,是用一个表实现的:
    发信人,收信人,标题,内容,发送时间,保存标志,删除标志, 已读标志
    保存标志:当为Y时表示保存到发信箱。N不保存。(发送方用)
    删除标志:当Y时表示自己已经删除该记录,不会在自己的信箱显示(注意,但可能还会在对方信箱显示)
    已读标志:判断收信人是否读
    只有当这三个标志都为N,时候,才可以从数据库中删除该记录。
      

  5.   

    2个表,一个发 一个收
    发:
    id
    发件人
    收件人
    内容
    是否删除收:
    id
    发件人
    收件人
    内容
    是否阅读
    是否删除
      

  6.   

    这个我做过,,,,,我是把所有短信都放到了一个表里,,,,字段是:发件人  收件人  标题    内容  时间  收件人删除  发件人删除
    aaron    bbb    hello   test            0            0     
    bbb     aaron   ok       ok             1            0就是这样,,读取的时候就是看是要读取收件箱,,还是发件箱,,,如果是收件箱,,那就按收件人筛选,,where getter = "username" and getterdelelte=0
    关于删除,,,如果是收件人删除,,,那收件人删除字段就改为1  但是数据并不真正删除,只有当收件人和发件人都删除后,,,也就是两个字段都改成1 后,,,数据才真正删除。
      

  7.   

    两个表:1.信箱表
    标题
    内容
    创建时间
    2.发信状态表
    自己的ID
    发信人ID
    收信人ID
    短信ID
    发信时间
    是否阅读这样就好处理了
      

  8.   

    这样还可以做群发
    删除的时候判断 发信状态表 里面有没有短信ID,没有的话就可以删短信了。第二个表要修改一下,改成两个吧用户ID 反
      

  9.   


    用户ID
    短信ID
    收信 or 发信
      

  10.   

    我用的一个短信表,如果有可以上传附件的功能,就+一个附件表
    note_id(自增长)
    send_user(发件人)
    note_sendate(发件时间)
    incept_user(收件人)
    note_title(标题,看情况而定,要或不要)
    note_info(信息内容)
    note_state(状态,已读或未读)
    note_msid(跟附件表ID的关联)
    如果需要,可以再+个字段来判断是是否保留该信息
    在保留该信息的情况下:
    照aaron_lly(永远,永远,等她回来!) 兄弟说的:"关于删除,,,如果是收件人删除,,,那收件人删除字段就改为1  但是数据并不真正删除,只有当收件人和发件人都删除后,,,也就是两个字段都改成1 后,,,数据才真正删除。"也可以再建个表来保存信息,看你自己而定
      

  11.   

    整理一下 —— 三个表1.短信表
    标题
    内容
    创建时间2.状态表 (收件箱)
    发信人ID
    收信人ID
    短信ID
    收信时间3.发信箱 (如果要记录发信人都发了哪些信的话,就要加这个表)
    用户ID
    短信ID
    发信时间
    要看一个用户都收到了哪些信从第二个表里取信息要看一个用户都发了哪些信从第三个表里取信息要三删除短信的是后,要先判断第二个(或第三个表)里面有没有短信ID,有的话就不删除短信了,只删除第三个(或第二个表)利的记录这样可以做群发。
      

  12.   

    2.状态表 (收件箱)
    发信人ID
    收信人ID
    短信ID
    收信时间
    阅读状态
      

  13.   

    3q楼上的各位,
    就用 jyk(喜欢编程。和气生财。共同提高。共同进步) 的方法了.
      

  14.   

    学习jyk(喜欢编程。和气生财。共同提高。共同进步)
    方法偶喜欢