小菜提问:站内短信的数据库怎么设计比较合理? 站内短信的数据库怎么设计比较合理?就只要实现最基本的发送、接收和搜索功能就行。分不多,先谢啦! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也没做过。不过我感觉要是我做的话,我会建立两个表一个是发件箱,一个是收件箱发件箱:id 收件人标题短信内容收件箱id 发件人标题短信内容是否已经阅读就这样的一个简单表,应该可以了吧。个人意见,仅供参考 一个表就够了ID SenderUserReceiveUserTitleContentPostTimeIsRead 那就加个字段了DelID 为 1 的时候 表示 同时保存在 发件箱和收件箱 2 的时候 表示 从发件箱删除 但未从收件箱删除 3 的时候 表示 同2相反 删除的时候 判断 是否该字段是否为1 不为1则表示已从发件箱或者收件箱之一删除,直接删除 为1时候 如果是发件人的话则改成 2 收件人改成 3 ,这就在程序里面控制了。不过你也可以见两个表,,不过那样就会产生一定数据冗余,,个人选择了 我最近刚好做了一个这个功能的,是用一个表实现的:发信人,收信人,标题,内容,发送时间,保存标志,删除标志, 已读标志保存标志:当为Y时表示保存到发信箱。N不保存。(发送方用)删除标志:当Y时表示自己已经删除该记录,不会在自己的信箱显示(注意,但可能还会在对方信箱显示)已读标志:判断收信人是否读只有当这三个标志都为N,时候,才可以从数据库中删除该记录。 2个表,一个发 一个收发:id发件人收件人内容是否删除收:id发件人收件人内容是否阅读是否删除 这个我做过,,,,,我是把所有短信都放到了一个表里,,,,字段是:发件人 收件人 标题 内容 时间 收件人删除 发件人删除aaron bbb hello test 0 0 bbb aaron ok ok 1 0就是这样,,读取的时候就是看是要读取收件箱,,还是发件箱,,,如果是收件箱,,那就按收件人筛选,,where getter = "username" and getterdelelte=0关于删除,,,如果是收件人删除,,,那收件人删除字段就改为1 但是数据并不真正删除,只有当收件人和发件人都删除后,,,也就是两个字段都改成1 后,,,数据才真正删除。 两个表:1.信箱表标题内容创建时间2.发信状态表自己的ID发信人ID收信人ID短信ID发信时间是否阅读这样就好处理了 这样还可以做群发删除的时候判断 发信状态表 里面有没有短信ID,没有的话就可以删短信了。第二个表要修改一下,改成两个吧用户ID 反 用户ID短信ID收信 or 发信 我用的一个短信表,如果有可以上传附件的功能,就+一个附件表note_id(自增长)send_user(发件人)note_sendate(发件时间)incept_user(收件人)note_title(标题,看情况而定,要或不要)note_info(信息内容)note_state(状态,已读或未读)note_msid(跟附件表ID的关联)如果需要,可以再+个字段来判断是是否保留该信息在保留该信息的情况下:照aaron_lly(永远,永远,等她回来!) 兄弟说的:"关于删除,,,如果是收件人删除,,,那收件人删除字段就改为1 但是数据并不真正删除,只有当收件人和发件人都删除后,,,也就是两个字段都改成1 后,,,数据才真正删除。"也可以再建个表来保存信息,看你自己而定 整理一下 —— 三个表1.短信表标题内容创建时间2.状态表 (收件箱)发信人ID收信人ID短信ID收信时间3.发信箱 (如果要记录发信人都发了哪些信的话,就要加这个表)用户ID短信ID发信时间要看一个用户都收到了哪些信从第二个表里取信息要看一个用户都发了哪些信从第三个表里取信息要三删除短信的是后,要先判断第二个(或第三个表)里面有没有短信ID,有的话就不删除短信了,只删除第三个(或第二个表)利的记录这样可以做群发。 2.状态表 (收件箱)发信人ID收信人ID短信ID收信时间阅读状态 3q楼上的各位,就用 jyk(喜欢编程。和气生财。共同提高。共同进步) 的方法了. 学习jyk(喜欢编程。和气生财。共同提高。共同进步)方法偶喜欢 急急!!“DBUtility.DbHelperSQL”的类型初始值设定项引发异常 如何逐行显示 两个ASP文件有冲突,求大家帮忙!!! Microsoft JScript runtime error: 关于WEB控件布局的问题 做好网页iis上运行时出现了点问题 帮忙解决这个问题后加分100 javascript函数,如何接收数组参数? 问,我下载的quickstart里面的例子,不好使为什么啊 送分!!!送分!!!! 找不到它的一个依赖项? 关于在asp.net form语句
id
收件人
标题
短信内容收件箱
id
发件人
标题
短信内容
是否已经阅读就这样的一个简单表,应该可以了吧。个人意见,仅供参考
SenderUser
ReceiveUser
Title
Content
PostTime
IsRead
DelID
为 1 的时候 表示 同时保存在 发件箱和收件箱
2 的时候 表示 从发件箱删除 但未从收件箱删除
3 的时候 表示 同2相反
删除的时候 判断 是否该字段是否为1 不为1则表示已从发件箱或者收件箱之一删除,直接删除 为1时候 如果是发件人的话则改成 2 收件人改成 3 ,这就在程序里面控制了。不过你也可以见两个表,,不过那样就会产生一定数据冗余,,个人选择了
发信人,收信人,标题,内容,发送时间,保存标志,删除标志, 已读标志
保存标志:当为Y时表示保存到发信箱。N不保存。(发送方用)
删除标志:当Y时表示自己已经删除该记录,不会在自己的信箱显示(注意,但可能还会在对方信箱显示)
已读标志:判断收信人是否读
只有当这三个标志都为N,时候,才可以从数据库中删除该记录。
发:
id
发件人
收件人
内容
是否删除收:
id
发件人
收件人
内容
是否阅读
是否删除
aaron bbb hello test 0 0
bbb aaron ok ok 1 0就是这样,,读取的时候就是看是要读取收件箱,,还是发件箱,,,如果是收件箱,,那就按收件人筛选,,where getter = "username" and getterdelelte=0
关于删除,,,如果是收件人删除,,,那收件人删除字段就改为1 但是数据并不真正删除,只有当收件人和发件人都删除后,,,也就是两个字段都改成1 后,,,数据才真正删除。
标题
内容
创建时间
2.发信状态表
自己的ID
发信人ID
收信人ID
短信ID
发信时间
是否阅读这样就好处理了
删除的时候判断 发信状态表 里面有没有短信ID,没有的话就可以删短信了。第二个表要修改一下,改成两个吧用户ID 反
用户ID
短信ID
收信 or 发信
note_id(自增长)
send_user(发件人)
note_sendate(发件时间)
incept_user(收件人)
note_title(标题,看情况而定,要或不要)
note_info(信息内容)
note_state(状态,已读或未读)
note_msid(跟附件表ID的关联)
如果需要,可以再+个字段来判断是是否保留该信息
在保留该信息的情况下:
照aaron_lly(永远,永远,等她回来!) 兄弟说的:"关于删除,,,如果是收件人删除,,,那收件人删除字段就改为1 但是数据并不真正删除,只有当收件人和发件人都删除后,,,也就是两个字段都改成1 后,,,数据才真正删除。"也可以再建个表来保存信息,看你自己而定
标题
内容
创建时间2.状态表 (收件箱)
发信人ID
收信人ID
短信ID
收信时间3.发信箱 (如果要记录发信人都发了哪些信的话,就要加这个表)
用户ID
短信ID
发信时间
要看一个用户都收到了哪些信从第二个表里取信息要看一个用户都发了哪些信从第三个表里取信息要三删除短信的是后,要先判断第二个(或第三个表)里面有没有短信ID,有的话就不删除短信了,只删除第三个(或第二个表)利的记录这样可以做群发。
发信人ID
收信人ID
短信ID
收信时间
阅读状态
就用 jyk(喜欢编程。和气生财。共同提高。共同进步) 的方法了.
方法偶喜欢