ylbtech-QQ(腾讯)-群

时间:2021-10-09 17:34:35
ylbtech-DatabaseDesgin:ylbtech-QQ(腾讯)-Account-账户模块, Role-角色、权限模块, Message-消息模块, Qzone-QQ空间,Contacts-通讯录-数据库设计

-- =============================================
-- DatabaseName:QQ-QQ
-- Desc: 手机版QQ
-- Model:Account-账户模块, Role-角色、权限模块, Message-消息模块, Qzone-QQ空间,Contacts-通讯录
-- pubdate:09:58 2013-12-06
-- author:Yuanbo
-- http://qzone.qq.com/
-- =============================================

1.A,数据库关系图(Database Diagram)【至于有的模块表多,没有截图数据库关系图,在家在查询分析器创建一下,新建一个数据库关】

Account-账户模块,

ylbtech-QQ(腾讯)-群

Role-角色、权限模块,

ylbtech-QQ(腾讯)-群

Message-消息模块,

ylbtech-QQ(腾讯)-群

Qzone-QQ空间,

这个没有截图。

Contacts-通讯录,

ylbtech-QQ(腾讯)-群

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

Account-账户模块, Role-角色、权限模块, Message-消息模块, Qzone-QQ空间,Contacts-通讯录

1.B,Account-账户模块
use master
GO
-- =============================================
-- DatabaseName:QQ-QQ
-- Desc: 手机版QQ
-- Model:Account-账户模块, Role-角色、权限模块, Message-消息模块, Qzone-QQ空间,Contacts-通讯录
-- pubdate:09:58 2013-12-06
-- author:Yuanbo
-- http://qzone.qq.com/
-- =============================================
IF EXISTS (SELECT *
FROM master..sysdatabases
WHERE name = N'qq_wap_qq')
DROP DATABASE qq_wap_qq
GO CREATE DATABASE qq_wap_qq
GO
use qq_wap_qq GO
-- =============================================
-- ylb:1,账户表
-- =============================================
create table account
(
account_id int identity(100000,1) primary key, --编号【PK】
pwd varchar(20) not null, --密码
[type] int, --类型 0:QQ号;1:QQ群号
[enable] bit --状态 0:正常;1:禁用
) GO
-- =============================================
-- ylb: 1.1,用户基本资料表
-- =============================================
create table Users
(
nickname varchar(200) not null, --昵称
realname varchar(200) null, --真实姓名
sex char(1) check(sex in('M','F','N')) default('N'), --性别M:男;F:女;N:未知
birthday datetime, --生日 constellation int, --星座
province varchar(100), --现居住地-省
city varchar(100), --现居住地-市
county varchar(100), --现居住地-县
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb:1,分组
-- =============================================
create table [group]
(
group_id uniqueidentifier, --编号【Guid】
groupname varchar(200), --组名
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb:1,我的好友
-- =============================================
create table friend
(
friend_id int, --好友的QQ号
account_id int references account(account_id), --QQ账号【FK】
group_id uniqueidentifier, --分组编号
pubdate datetime default(getdate()) --添加时间
) GO
-- =============================================
-- ylb:1,群
-- =============================================
create table self_qun
(
qun_id int, --好友的QQ号
account_id int references account(account_id), --QQ账号【FK】
) GO
-- =============================================
-- ylb:1,群、讨论组
-- =============================================
create table qun
(
qun_id int, --好友的QQ号
account_id int references account(account_id), --QQ账号【FK】
role varchar(200), --角色:群主、管理员、成员
--[type] varchar(200) not null, --类型,比如:群、讨论组
pubdate datetime default(getdate()) --添加时间
) GO
-- =============================================
-- ylb:1,讨论组
-- =============================================
create table taolunzu
(
taolunzu_id int, --好友的QQ号
account_id int references account(account_id), --QQ账号【FK】
pubdate datetime default(getdate()) --添加时间
)
1.B,Role-角色、权限模块
use qq_wap_qq

go
-- =============================================
-- ylb:1,角色、权限访问关系设计
-- =============================================
go
-- =============================================
-- 1,角色表【器官|组织】
-- =============================================
create table [role]
(
role_id uniqueidentifier primary key, --编号【PK】
rolen_ame varchar(20), --角色名称
role_desc varchar(200), --角色描述
enable bit --状态 0:正常;1:禁用
)
go
go
-- =============================================
-- 1,P:账户角色关系表
-- =============================================
create table accountrole
(
account_id int references account(account_id), --账户-编号【FK】
role_id uniqueidentifier references role(role_id), --角色-编号【FK】
enable bit --状态 0:正常;1:禁用
)
go -- =============================================
-- 1,功能表(事件表)【细胞】
-- =============================================
create table event
(
event_id uniqueidentifier primary key, --编号【PK】
event_name varchar(20), --事件名称
event_desc varchar(200),--事件描述
enable bit --状态 0:正常;1:禁用
) go
-- =============================================
-- 1,P:角色功能关系表
-- =============================================
create table roleevent
(
role_id uniqueidentifier references role(role_id),
event_id uniqueidentifier references event(event_id),
enable bit --状态 0:正常;1:禁用
)
1.B,Message-消息模块
use qq_wap_qq
GO
-- =============================================
-- ylb:1,消息【核心模块】
-- ============================================= GO
-- =============================================
-- ylb:1,消息
-- =============================================
create table message
(
message_id int primary key identity(20000,1), --编号【PK,ID】
content varchar(400),
pubdate datetime default(getdate()), --发布时间
send_account_id int references account(account_id), --发送-QQ账号【FK】
accept_account_id int references account(account_id), --接受-QQ账号【FK】
status int, --发送状态 0:成功;1:失败
offline_send bit --0:否;1:是。如是“是”,则接受者等登录则发送过去
)
1.B,Qzone-QQ空间
use qq_wap_qq
GO
-- =============================================
-- ylb:1,QQ空间【核心模块】
-- ============================================= GO
-- =============================================
-- ylb:1,说说、日志、相册、留言
-- ============================================= GO
-- =============================================
-- ylb:1,时间轴(消息|好友动态)
-- =============================================
create table timeline
(
timeline_id int primary key identity(10000,1), --编号【PK,ID】
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
[type] varchar(200) not null, --类型,比如:说说、日志、留言、
pubdate datetime default(getdate()), --发布时间
status bit default(0), --时候0:未读;1:已读
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 8, 说说
-- =============================================
create table feeling
(
feeling_id int primary key identity(1,1), --编号
content varchar(200), --内容
pubdate datetime default(getdate()), --时间
base_id int, --base_id=0:首发;base_id=num:则回复
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
)
GO --ylb:2,日志
GO
-- =============================================
-- ylb: 2.1,日志分类表
-- =============================================
create table blogclass
(
blogclass_id int primary key identity(100,1), --编号【PK】
class_name varchar(100) not null, --分类名称
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 2.2,日志表
-- =============================================
create table article
(
article_id int primary key identity(1,1), --编号【PK】
title varchar(200) not null, --标题
content varchar(5000), --内容
blogclass_id int references blogclass(blogclass_id), --分类编号【FK】
pubdate datetime default(getdate()), --分布日期 read_cnt int default(0), --阅读数量
reply_cnt int default(0), --回复数量
allow_view int default(0), --显示范围权限 -100:公开;100:好友;1000:私人
draft_flag int default(0), --0:发送;1:保存草稿
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 2.3,日志评论表
-- =============================================
create table articlereply
(
articlereply_id int primary key identity(100,1), --编号【PK】
content varchar(200) not null, --内容
pubdate datetime default(getdate()), --回复时间
article_id int references article(article_id), --文章编号[FK]
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) --ylb:3, 相册
GO
-- ylb: 3.1 相册类别表
-- =============================================
-- ylb: 3.1.1 相册类别表
-- =============================================
create table album
(
album_id int primary key identity(1,1), --编号【PK】
album_name varchar(100) not null, --相册名
pubdate datetime default(getdate()), --创建时间
album_url varchar(100), --封面图片
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 3.1.2 相册类别评论表
-- =============================================
create table replyalbum
(
replyalbum_id int primary key identity(100,1),--编号
content varchar(200) not null, --评论内容
pubdate datetime default(getdate()), --评论时间
base_id int default(0), --评论级次 0:发表;其他:回复|跟贴
album_id int references album(album_id), --相册编号[FK]
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) -- ylb: 3.2 相册表
GO
-- =============================================
-- ylb: 3.2.1 相册表
-- =============================================
create table photo
(
photo_id int primary key identity(100,1), --编号【PK】
img_url varchar(100), --保存地址
img_desc varchar(100), --描述 [注:3g版不显示]
album_id int references album(album_id), --相册编号[FK]
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 3.2.2 相册评论表
-- =============================================
create table replyphoto
(
replyphoto_id int primary key identity(100,1),--编号
content varchar(200) not null, --评论内容
pubdate datetime default(getdate()), --评论时间
base_id int default(0), --评论级次 0:发表;其他:回复|跟贴
photo_id int references photo(photo_id), --照片编号[FK]
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 6, 留言表
-- =============================================
create table note
(
note_id int primary key identity(1,1), --编号
content varchar(200), --内容
pubdate datetime default(getdate()), --时间
base_id int, --base_id=0:首发;base_id=num:则回复
guid uniqueidentifier, --Guid全局唯一标示和对应模块的相同【FK】
account_id int references account(account_id) --QQ账号【FK】
) GO
-- =============================================
-- ylb: 7, 最近走访
-- =============================================
create table recentvisit
(
recentvisitId int primary key identity(1,1), --编号
host_account_id int references account(account_id), --主人编号
visit_account_id int references account(account_id), --来访者编号
pubdate datetime default(getdate()), --时间
type int --类型 0:谁看过我;1:我看过谁;2:被挡访客
)
1.B,Contacts-通讯录
use qq_wap_qq
go
-- =============================================
-- ylb:1,通讯录
-- ============================================= GO
-- =============================================
-- ylb: 3,联系人组
-- =============================================
create table contactgroup
(
contactgroup_id int primary key identity(10,1), --编号【PK】
contactgroup_name varchar(100) not null, --分组名称
account_id int references account(account_id), --QQ账号【FK】
) 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), --电话|移动电话号
contactgroup_ids varchar(100), --联系人分组编号【FK】
account_id int references account(account_id), --QQ账号【FK】
)
GO
1.C,功能实现代码(Function Implementation Code)
ylbtech-QQ(腾讯)-群 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。