我看过discuz x3的私信设计,是由2个表来记录的。一个是记录私信内容,id为自增主键;另一个表是user_id和私信id的对应关系记录表。
这样设计的话,若要对站内所有会员发送私信(或称系统通知),若有1e个注册会员,那么就会在第二个表内插入了1e条记录了。
感觉这样设计不靠谱啊,不知道有没哪位大侠有更好的设计思路?
这样设计的话,若要对站内所有会员发送私信(或称系统通知),若有1e个注册会员,那么就会在第二个表内插入了1e条记录了。
感觉这样设计不靠谱啊,不知道有没哪位大侠有更好的设计思路?
解决方案 »
- 联合索引中排序,其中各字段索引值升序降序不同,该如何建?
- 无法连接远程mysql服务器
- sql语句 查询
- my sql 中如何判断数据库是否存在
- 同一条SQL在Windows的服务器上运行正常,在Linux服务器上却不能执行
- 关于MYSQLCLIENT与GLIBC_2.4的依赖问题(使用MYSQL C API)
- 我的mysql 用localhost 可以访问,但是用ip地址就不行了,甚至用127.0.0.1都不行,怎么办?
- Mysql中怎样建立表间的依赖关系~!在线等....
- 使用gunzip恢复备份文件报错
- 谁能给我一个练手的例子
- MySQL 循环遍历表 更改表结构
- 这种查询如何做,效率如何?
where uid =myuid and uid = -100 这个不是空集吗?没看懂你的意思...
where uid =myuid OR uid = -100 这个不是空集吗?没看懂你的意思...改为 OR
我大概了解你的想法。你的意思是,当注册用户有1亿这个数量级的时候,网站就算挺大型的了,数据库应该已经是分表/分库甚至分布到不同服务器上储存了,是这样的意思么?
那么,我把这个数字改小为100万吧。这样子,每次发送系统通知也要发100万条吧?至于你提及到的不会是一次发出,discuz x3也不是一次发出,是分批发的,大约100条/次的发。所以我上述也用了“先不说发一次全站通知要多久”这个字眼。我的想法是,能不能全站通知只发一条就行,每一位用户都能收到。这样的话表要怎么设计呢?
我初步的想法跟ACMAIN_CHM差不多,也是想用一个字段进行私信类型约束。
我大概了解你的想法。你的意思是,当注册用户有1亿这个数量级的时候,网站就算挺大型的了,数据库应该已经是分表/分库甚至分布到不同服务器上储存了,是这样的意思么?
那么,我把这个数字改小为100万吧。这样子,每次发送系统通知也要发100万条吧?至于你提及到的不会是一次发出,discuz x3也不是一次发出,是分批发的,大约100条/次的发。所以我上述也用了“先不说发一次全站通知要多久”这个字眼。我的想法是,能不能全站通知只发一条就行,每一位用户都能收到。这样的话表要怎么设计呢?
我初步的想法跟ACMAIN_CHM差不多,也是想用一个字段进行私信类型约束。
不同的设计有不同的局限性,如果通知就一条,那么每个用户是否已经查看,或者是否删除,又需要另一个关联表来存放