| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 744 人关注过本帖
标题:[求教]当通知发送给N个人时,数据库中如何存放?
取消只看楼主 加入收藏
sun30
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-12-16
收藏
 问题点数:0 回复次数:2 
[求教]当通知发送给N个人时,数据库中如何存放?
我遇到一个问题,假设我要把一个通知发送给一个部门的所有人(这个部门有N个人).当这条通知发送给这N个人时,这条通知在数据库中应该如何存放呢?

我想到的方案有两种,

1>每增加一个收到通知的人,就增加一条记录.
2>一个通知就存放一条记录.专设一个字段来记录收到记录的人,以一个比较特殊的分隔符分开收信者(比如:张三|李四|王五).

我比较想用第二种,但是如果用这种的话,我就不知道要如何实现"显示通知是否被这个人查看过"的功能(就是说,有新的通知来了,如果这个人看过了这条通知,这条后通知的后面就显示“已查看”)。

大家有没有人开发过这种东西啊!能告诉我一种好的解决方案吗?谢谢大家啦!
搜索更多相关主题的帖子: 数据库 通知 
2006-01-06 10:17
sun30
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-12-16
收藏
得分:0 

“我晕”,谢谢你!

我又想了一下!第二次方法也不太好。因为用特殊符号分隔的话,每次分析起来非常麻烦。

所以我又有的个方案:

3>建2个表:“通知表”和“信息查看表”,以外键“通知的ID号”相连。
“通知表”中就存放通知的内容,每条通知有一个唯一的ID号。
“信息查看表”中存放应该收到这条通知的人。有几个收件人,就有几条记录,这个收件人应该收到的是哪一条通知就对应“通知表”的ID号。(有这几个字段:通知ID号、收件人,是否查看)

假设有一个用户:SUN30。它登录后,就检查“信息查看表”,把收件人是它的记录全部显示出来(用JOIN,把它对应的ID号的通知提出来),它查看过的通知就改变“信息查看表”的“是否查看”字段。

这是我目前能想到的最好的方案了。大家还有什么更好的方案吗?


春天来啦!万物开始生长!
2006-01-06 11:16
sun30
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-12-16
收藏
得分:0 

"通用的分割函数"!听起来有点意思!

是我想的太多了吗?
我在想第二种方案的时候,想到应该有(收件人、已看过的人,已删除通知的人)
假设现在有一条通知,应该有3个人(A|B|C)收到。当通知刚发出去时,在“收件人”字段中放的是“A|B|C”,“已看过的人”和“已删除通知的人”字段为空。每有一个人看过就加入到“已看过的人”字段中一个。每有一个收件人删除这条通知就在“已删除通知的人”里加入一个。
当A进入系统时,就需要判断它是否在“收件人”中,并且不在“已删除通知的人”中,还要判断它是否在”已看过的人“中。
这样数据库中的每一条记录都需要判断。
这样的效率高呢?还是查询数据库的效率高呢?但是这种方法占用的数据库空间到是最小。


春天来啦!万物开始生长!
2006-01-06 12:15
快速回复:[求教]当通知发送给N个人时,数据库中如何存放?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016240 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved