精英盒子 -> 零毫秒 -> 零毫秒2.x 服务器端数据库设计 [打印本页]

jybox 2012-01-20 17:58

零毫秒2.x 服务器端数据库设计



user用户表

uid                递增id
uname             用户名
pwd              密码   SHA-256(用户名+密码)
lastlogintime   上次登录时间戳
lastloginip     上次登录ip
regtime         注册时间
onlinetime      总在线时间(分钟)
website         链接(用户自定义)
info            个人介绍(用户自定义)
email           邮箱
avater          头像MD5值


group组群表

gid             递增id
groupname       组群名
master          群主用户名
regtime         注册时间
website         链接(群主自定义)
info            个人介绍(群主自定义)
avater          头像MD5值

group_member组群成员表

id              递增id
groupname       群名
uname           用户名
isadmin         是否管理员
isdeny          是否被禁言(此处和通讯协议中的字符串保持一致,上一条也是)
regtime         进入时间

userlist好友列表

id              递增id
uanme           用户名(这条记录的主人)
user            目标用户(也就是表示user在uname的好友列表中)

userrequest用户请求表(未处理的请求暂存这里)

id              递增id
time            发起时间
uanme           请求发起者
user            目标用户名(详见通讯协议)
group           组群名(详见通讯协议)
msg             留言
ishandle        是否处理

image_cache图片缓存表

id              递增id
imgmd5          图片md5
time            上传时间
lasttime        上次被请求时间
isexist         是否存在(不存在就是已经被删除了)

image_sign图片签收表

id              递增id
imgmd5          图片md5
user            需要签收的用户
issign          是否已经签收
time            签收时间

msg_log聊天记录

id              递增id
time            发送时间
uname           发送者
user            接受者
msg             消息内容
issend          是否已经被发送(未被发送的就是未发送的离线消息)

error_log错误日志

id              递增id
time            时间
uanme           相关联用户名
info            详情

log一般事件日志

id              递增id
time            时间
uanme           相关联用户名
info            详情

whtsky 2012-01-20 18:02
userrequest用户请求表(未处理的请求暂存这里)
image_cache图片缓存表
image_sign图片签收表

这几个用memcached做不就好了。。又不是要一直持久化下去。。

user用户表

uid                递增id
uname             用户名
pwd              密码   SHA-256(用户名+密码)
lastlogintime   上次登录时间戳
lastloginip     上次登录ip
regtime         注册时间
onlinetime      总在线时间(分钟)
website         链接(用户自定义)
info            个人介绍(用户自定义)
email           邮箱
avater          头像MD5值


group组群表

gid             递增id
groupname       组群名
master          群主用户名
regtime         注册时间
website         链接(群主自定义)
info            个人介绍(群主自定义)
avater          头像MD5值

group_member组群成员表

id              递增id
groupname       群名
uname           用户名
isadmin         是否管理员
isdeny          是否被禁言(此处和通讯协议中的字符串保持一致,上一条也是)
regtime         进入时间

userlist好友列表

id              递增id
uanme           用户名(这条记录的主人)
user            目标用户(也就是表示user在uname的好友列表中)

msg_log聊天记录

id              递增id
time            发送时间
uname           发送者
user            接受者
msg             消息内容
issend          是否已经被发送(未被发送的就是未发送的离线消息)

用MongoDB的话这些能放到两个集合里去。。

总结:完全滥用数据库


jybox 2012-01-20 18:11
我又没说都存mysql

whtsky 2012-01-20 18:15
那你想怎么存

jybox 2012-01-20 18:24
whtsky:那你想怎么存[表情]  (2012-01-20 18:15) 

刚刚又瞧了mongodb.........没必要啊,根本称不上海量级数据..........瓶颈根本不在这里,其他地方浪漫的效率几倍(几十倍?)于数据库

abreto 2012-01-20 19:27
头像MD5值是干啥玩意儿的?

jybox 2012-01-20 19:36
abreto:头像MD5值是干啥玩意儿的? (2012-01-20 19:27) 

详见通讯协议,无论是头像还是聊天图片,都用MD5来做唯一标识

whtsky 2012-01-20 21:36
第4楼jybox于2012-01-20 18:24发表的 回 whtsky 的帖子 的帖子
whtsky:那你想怎么存[表情]  (2012-01-20 18:15) [url=http://jybox.net/bbs/job.php?action=topost&am ..
普通储存也比mysql效率高啊…而且自由啊,能把好多数据表整合到一块.
你真的用得到sql那些高级功能么?

jybox 2012-01-20 21:40
whtsky:普通储存也比mysql效率高啊…而且自由啊,能把好多数据表整合到一块.
你真的用得到sql那些高级功能么? (2012-01-20 21:36) 

也用不到mongodb的高级功能啊,主要是Qt没封装.....调研起来太麻烦啊

whtsky 2012-01-20 22:00
第8楼jybox于2012-01-20 21:40发表的 回 whtsky 的帖子 的帖子
whtsky:普通储存也比mysql效率高啊…而且自由啊,能把好多数据表整合到一块.
你真的用得到sql那 ..
mongodb没高级功能啊…保持kiss

whtsky 2012-01-20 22:04
mongodb安装完之后附带了一个js的cli,你可以用那个调研

jybox 2012-01-21 00:34
whtsky:mongodb安装完之后附带了一个js的cli,你可以用那个调研 (2012-01-20 22:04) 

饶了我吧.....你不知道2.x的设计负荷才多少么....

墨阐 2012-01-21 09:21
头像gravatar.com...数据库结构,看着真像坛子.

内容来自[手机版]

whtsky 2012-01-21 10:48
第11楼jybox于2012-01-21 00:34发表的 回 whtsky 的帖子 的帖子
whtsky:mongodb安装完之后附带了一个js的cli,你可以用那个调研 (2012-01-20 22:04) [url ..
但是你这么搞是真蛋疼…
未处理的请求还是用memcache吧

whtsky 2012-01-21 10:48
第11楼jybox于2012-01-21 00:34发表的 回 whtsky 的帖子 的帖子
whtsky:mongodb安装完之后附带了一个js的cli,你可以用那个调研 (2012-01-20 22:04) [url ..
phper应该不排斥memcache吧

墨阐 2012-01-21 10:59
@jybox  @whtsky   Berkeley DB?Hadoop?Tokyo Cabinet?

内容来自[手机版]

whtsky 2012-01-21 11:46
第15楼墨阐于2012-01-21 10:59发表的:
@jybox  @whtsky   Berkeley DB?Hadoop?Tokyo Cabinet?
内容来自[url=http://jybox.net ..
bdb扩展性太差,hadoop不知道你想表达什么,第三个是什么…

whtsky 2012-01-21 11:50
第16楼whtsky于2012-01-21 11:46发表的 回  15楼(墨阐)的帖子 的帖子
第15楼墨阐于2012-01-21 10:59发表的:
@jybox  @whtsky   Berkeley DB?Hadoop?Tokyo Cabinet?
内容来 ..
好吧,日本的一个kv数据库…
你扯hadoop干么…

jybox 2012-01-21 15:48

jybox 2012-01-21 19:45


CREATE TABLE IF NOT EXISTS `error_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` int(10) unsigned NOT NULL,
  `uname` varchar(255) NOT NULL,
  `info` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `group` (
  `gid` int(11) NOT NULL AUTO_INCREMENT,
  `groupname` varchar(255) NOT NULL,
  `caption` varchar(255) NOT NULL,
  `master` varchar(255) NOT NULL,
  `regtime` int(11) unsigned NOT NULL,
  `website` text NOT NULL,
  `info` text NOT NULL,
  `avater` varchar(32) NOT NULL,
  PRIMARY KEY (`gid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `group_member` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `groupname` varchar(255) NOT NULL,
  `uname` varchar(255) NOT NULL,
  `isadmin` tinyint(1) NOT NULL,
  `isdeny` tinyint(1) NOT NULL,
  `regtime` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `image_cache` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `md5` varchar(32) NOT NULL,
  `user` varchar(255) NOT NULL,
  `lasttime` int(10) unsigned NOT NULL,
  `isexist` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `image_sign` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `md5` varchar(32) NOT NULL,
  `user` varchar(255) NOT NULL,
  `time` int(10) unsigned NOT NULL,
  `issign` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` int(10) unsigned NOT NULL,
  `uname` varchar(255) NOT NULL,
  `info` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `msg_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` int(10) unsigned NOT NULL,
  `uname` varchar(255) NOT NULL,
  `user` varchar(255) NOT NULL,
  `msg` text NOT NULL,
  `issend` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `user` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `uname` varchar(255) NOT NULL,
  `pwd` text NOT NULL,
  `lastlogintime` int(10) unsigned NOT NULL,
  `lastloginip` text NOT NULL,
  `regtime` int(11) unsigned NOT NULL,
  `onlinetime` int(11) NOT NULL,
  `website` text NOT NULL,
  `info` text NOT NULL,
  `email` varchar(255) NOT NULL,
  `avatar` varchar(32) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `userlist` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uanme` varchar(255) NOT NULL,
  `user` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `userrequest` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `time` int(11) unsigned NOT NULL,
  `uname` varchar(255) NOT NULL,
  `user` varchar(255) NOT NULL,
  `group` varchar(255) NOT NULL,
  `msg` text NOT NULL,
  `ishandle` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;






Powered by phpwind v8.7 Code ©2003-2011 phpwind
Time 0.047830 second(s),query:5 Gzip enabled