ylbtech-dbs-m-QQ邮箱

ylbtech-dbs:ylbtech-dbs-m-QQ邮箱

-- =============================================
-- DatabaseName:QQ-Email
-- Desc: 基本版QQ邮箱
-- Model:Account-账户模块, Role-角色、权限模块, Message-消息模块, Qzone-QQ空间,Contacts-通讯录
-- pubdate:09:57 2013-12-09
-- author:Yuanbo
-- http://mail.qq.com/
-- =============================================

1.A,数据库关系图(Database Diagram) 返回顶部

 

1.B,数据库设计脚本(Database Design Script)返回顶部

1.B.1,

技术分享
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 = Nqq_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&noteid=_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】
)
View Code

1.B.2,

1.C,功能实现代码(Function Implementation Code)返回顶部

 

技术分享 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。