QQ邮箱数据库设计
QQ邮箱数据库设计
use master GO -- ============================================= -- DatabaseName:QQ-Email -- Desc: 基本版QQ邮箱 -- Model:Account-账户模块, Role-角色、权限模块, Message-消息模块, Qzone-QQ空间,Contacts-通讯录 -- pubdate:09:57 2013-12-09 -- author:Yuanbo -- http://mail.qq.com/ -- ============================================= IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = N'qq_wap_email') DROP DATABASE qq_wap_email GO CREATE DATABASE qq_wap_email GO use qq_wap_email GO -- ============================================= -- ylb:1,账户表 -- ============================================= create table account ( account_id int identity(100000,1) primary key, --编号【PK】 pwd varchar(20) not null, --密码 email_type varchar(20), --邮箱类型 qq.com;vip.qq.com;foxmail.com [type] int, --类型 0:QQ号;1:QQ群号 [enable] bit --状态 0:正常;1:禁用 ) GO -- ============================================= -- ylb:1,收件箱、文件夹、记事本、漂流瓶、阅读、联系人 -- 中转站、附件、贺卡、推荐阅读、设置 -- 生日【即好友生日提醒】、更新【系统最近更新说明】、天气 -- ============================================= GO -- ============================================= -- ylb:1,收件箱 -- ============================================= create table mail ( mail_id int identity(10000,1) primary key, --编号【PK,ID】 to_mail varchar(200), --收件人 in_mail varchar(200), --发件人 subject varchar(200), --主题 wcc varchar(200), --抄送 bcc varchar(200), --密送 content varchar(2000), --内容 [date] datetime, --发送日期|接收日期 flag_read bit, --邮件是否被读 0:未读:1:已读 type int, --邮箱状态 已发送|草稿| flag_status int, --0:已发送;1:保存 邮件发送状态 成功;失败;没到发送时间 account_id int references account(account_id) --QQ号【FK】 ) -- ============================================= -- ylb:1,收件箱-附件表【附件夹】 -- ============================================= create table attachment ( attachment_id int primary key identity(1,1), --编号【PK】 attachment_url varchar(200) not null, --附件保存地址 [filename] varchar(200), --文件名称 filesize varchar(100), --文件大小 mail_id int references mail(mail_id), --邮件编号【FK-Email】 temp_id varchar(200), --临时的保存标识【当邮箱没保存的时候】 email varchar(200), --邮箱帐户【FK】 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb:1,标签 --创建标签失败,已存在同名的标签 --标签创建成功 -- ============================================= create table tag ( tag varchar(200), --标签 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb:1,邮箱标签关系表 -- ============================================= create table mailtag ( tag varchar(200), --标签 mail_id int references mail(mail_id) --邮箱编号【FK】 ) GO -- ============================================= -- ylb:1,文件夹 -- ============================================= -- A-系统文件夹 -- 收件箱、星标邮件、群邮件、草稿箱、已发送、已删除、垃圾箱、QQ邮件订阅 -- B-我的文件夹 -- 邮件归档 --http://w.mail.qq.com/cgi-bin/mail_list --?sid=KRVMxyV5zH-aE1IAio3T7fN7,4,zxz5oTD6w&folderid=1&page=0&pagesize=10&sorttype=time&loc=folderlist,,xhtml,1&t=mail_list GO -- ============================================= -- ylb:1,记事本 -- ============================================= -- http://w.mail.qq.com/cgi-bin/read_note -- ?sid=KRVMxyV5zH-aE1IAio3T7fN7,4,c6izDCnqIQgY.&catid=1¬eid=_53&flag=&t=read_note create table note ( note_id int identity(1000,1) primary key, --编号【PK】 subject varchar(200), --主题 content varchar(2000), --内容 cate_id int, --分类编号 [date] datetime, --发布时间 flag_star bit, --星标记 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb:1,漂流瓶 -- ============================================= --普通瓶、心情瓶、同城瓶、交往瓶、提问瓶、祝愿瓶、真话瓶、传递瓶 GO -- ============================================= -- ylb:1,漂流瓶-普通瓶 -- ============================================= create table bottle ( bottle_id int identity(1000,1) primary key, --编号【PK,ID】 content varchar(200), --内容 140 bottle_unread bit, --瓶子是否已读 0:未读;1:已读 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb:1,阅读 -- ============================================= GO -- ============================================= -- ylb: 3.2,联系人 -- ============================================= create table contact ( contact_id int primary key identity(100,1), --编号【PK】 [name] varchar(100) not null, --姓名 email_pref varchar(100), --电子邮箱 tel_cell varchar(100), --电话|移动电话号 cate_id int, --类别编号 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb: 5,文件中心 -- ============================================= create table [file] ( [file_id] int primary key identity(1,1), --编号【PK】 [filename] varchar(200) not null, --文件名称 --base_id int default(0), --上级编号 0:无上级; --file_type int, --文件类型 1:文件夹;2:非文件夹 file_url varchar(100), --(非文件时)文件保存位置 filesize int, --文件大小 [date] datetime, --上传时间 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb: 5,贺卡【未完成】 -- ============================================= create table card ( card_id int identity(1000,1) primary key, --编号【PK,ID】 subject varchar(200), --主题 content varchar(2000), --内容 card_url varchar(100), --图片地址 cate_id int, --类别编号 account_id int references account(account_id) --QQ号【FK】 ) GO -- ============================================= -- ylb: 5,推荐订阅 -- ============================================= GO -- ============================================= -- ylb: 5,设置 -- 常规、账户、天气 -- ============================================= GO -- ============================================= -- ylb: 5,设置-天气 -- ============================================= GO -- ============================================= -- ylb: 1.3, 省份-城市【公共表】 -- ============================================= create table ProvinceAndCity ( [name] varchar(40) not null, --名称 fullname varchar(40) not null, --全名称 base_id varchar(40) default('-1') --上级ID -1:无上级,即:第一级; ) GO -- ============================================= -- ylb: 1, 日志【公共表】 -- ============================================= create table newnote ( newnote_id int identity(1000,1) primary key, --编号【PK,ID】 content varchar(2000), --内容 [date] datetime --发布时间 ) GO -- ============================================= -- ylb: 1, 登录记录help_static_login -- http://w.mail.qq.com/cgi-bin/help_static_login -- ?sid=KRVMxyV5zH-aE1IAio3T7fN7,4,zxz5oTD6w&t=help_static_login&page=1&type=0 -- ============================================= create table login_log ( login_time datetime, --[登录]时间 login_city varchar(200), --城市[省份 市、县] login_method varchar(200), --登录方式 account_id int references account(account_id) --QQ号【FK】 )