群发短消息!

heaton0720 2004-04-02 04:10:31
我想问问,怎么实现群发短消息的功能

就是每个用户登陆网站,收到系统发给他的短消息!!
...全文
26 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
heaton0720 2004-04-05
555555555,高手呢,指点一下嘛!
回复
xxrl 2004-04-05
楼主还没有明白?
回复
heaton0720 2004-04-03
怎么没人回答我呢?!!帮帮我啊!!!
回复
heaton0720 2004-04-02
有点不明白,不可以这样么,就一个表
消息表MsgTable:
ID,UserIDList,Content,CreateTime

如果有某个用户读了该短消息,就在UserIDList中插入userid
每次用户登陆后,in 这个UserIDlist,如果有,就说明读过了!

为什么还有个
消息读取表MsgIsReadTable:
ID,MsgID,UserID,CreateTime
呢??

这点我确实还不明白!1
回复
breakshow 2004-04-02
同意xijupony(吾不知鱼),要再建一个表记录用户是否已经读了短消息.
回复
xijupony 2004-04-02
有关这个的问题,如果需要判断用户是否已读某条消息,必须另外建立一个table。
消息表MsgTable:
ID,UserIDList,Content,CreateTime
消息读取表MsgIsReadTable:
ID,MsgID,UserID,CreateTime

UserIDList须是这样的结构"*UserID*UserID*UserID*UserID*"
SQL语句可以这样写:
userid = 1
sql = "Select ID,Content,CreateTime From MsgTable Where UserIDList like '%*" & userid &"*%' And ID Not in (Select MsgID From MsgIsReadTable Where UserID="&userid&")"

解决方法二
每一个用户建立一条相同的消息,不使用UserIDList这样的方式记录数据,这样就可以在消息表中建立是否已读的bit字段了。

两种解决方法,第一种,数据添加方便,数据记录相对较小,但是SQL语句执行效率不高,因为使用了like。第二种,数据记录比较大,添加也比较麻烦,但是SQL语句很容易写。。

搂主看着办吧,到底是牺牲空间还是牺牲效率。我来选我会选择第二种方法。另外,如果是消息,不要用text类型,那样太庞大。试想只是消息而已,用得着用那么大的字段类型来存储数据吗?可以限定消息的长度的。
回复
heaton0720 2004-04-02
什么意思啊,不是很明白啊!
回复
xxrl 2004-04-02
那就在设置一个字段,text类型的,里面用userid,userid,userid,userid,userid,userid的形式不就可以了?用sql语句IN一下不就解决了?
回复
skywatcher 2004-04-02
给每个用户对应一个映射好了,没有放数据的地方怎么可能啊
回复
heaton0720 2004-04-02
问题是,我怎么判断它是否读了消息,假如在消息表里设个标志,但是一个人读了,另外一个人不就不能读了?!应该明白我的意思吧!
回复
xxrl 2004-04-02
偶倒 扫描数据库不就可以吗?用户一访问那个网页,就识别他的cookie,然后发不就ok?
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告