微博项目_数据库建模

利用两周时间看完了一个仿微博项目视频,希望对其中的一些流程及设计思路等方面加以
整理分析,加深自己的印象,并形成自己的一套方法。

下面是该项目教程资源链接:
百度云链接:基于ThinkPHP仿微博项目实战
提取密码:halz

在具体去用编程实现一个微博项目之前,首要做好的是数据库方面的建模。这样,对于整个项目的轮廓和构架能够有一个更为清晰得认识和了解,对于后续的项目展开有很大的帮助。

表的设计

用户表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 用户id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
account 账号 VARCHAR(20) NOT NULL UNIQUE
password 密码 VARCHAR(32) NOT NULL
registime 注册时间 INT(10) UNSIGNED NOT NULL 0
lock 是否锁定 TINYINT(1) UNSIGNED NOT NULL 0

用户信息表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 用户信息id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
username 用户名 VARCHAR(45) NOT NULL
truename 真实名 VARCHAR(45) YES NULL
sex 性别 ENUM(‘男’,’女’) NOT NULL
location 居住地 VARCHAR(45) NOT NULL
constellation 星座 VARCHAR(45) NOT NULL
intro 简介 VARCHAR(100) NOT NULL
face 头像 VARCHAR(60) NOT NULL
follow 关注 INT(10) UNSIGNED NOT NULL 0
fans 粉丝 INT(10) UNSIGNED NOT NULL 0
weibo 微博 INT(10) UNSIGNED NOT NULL 0
uid 用户id INT(11) NOT NULL MULTIPLE NULL

私信表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 私信id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
from 发信用户 INT(11) NOT NULL NULL
content 内容 VARCHAR(255) NOT NULL
time 发送时间 INT(10) UNSIGNED NOT NULL NULL
uid 用户id INT(11) NOT NULL MULTIPLE NULL

@表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id @id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
wid 微博id INT(11) NOT NULL MULTIPLE NULL
uid 用户id INT(11) NOT NULL MULTIPLE NULL

分组表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 分组id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
name 分组名称 VARCHAR(45) NOT NULL
uid 用户id INT(11) NOT NULL MULTIPLE NULL

关注表

字段名 描述 数据类型 是否为空 Key 默认值 其他
follow 关注用户的id INT(10) UNSIGNED NOT NULL MULTIPLE NULL
fans 粉丝用户的id INT(10) UNSIGNED NOT NULL MULTIPLE NULL
gid 所属关注分组的id INT(11) NOT NULL MULTIPLE 0

微博表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 微博id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
content 内容 INT(11) NOT NULL
isturn 是否转发 INT(11) NOT NULL 0
time 发布时间 INT(10) UNSIGNED NOT NULL NULL
turn 转发次数 INT(10) UNSIGNED NOT NULL 0
keep 收藏次数 INT(10) UNSIGNED NOT NULL 0
comment 评论次数 INT(10) UNSIGNED NOT NULL 0
uid 用户id INT(11) NOT NULL MULTIPLE NULL

图片表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 图片id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
picture 图片 VARCHAR(60) NOT NULL NULL
wid 微博id INT(11) NOT NULL MULTIPLE NULL

评论表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 评论id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
content 内容 VARCHAR(255) NOT NULL
time 评论时间 INT(10) UNSIGNED NOT NULL NULL
uid 用户id INT(11) NOT NULL MULTIPLE NULL
Wid 微博id INT(11) NOT NULL MULTIPLE NULL

收藏表

字段名 描述 数据类型 是否为空 Key 默认值 其他
id 收藏id INT(11) NOT NULL PRIMARY KEY NULL AUTO_INCREMENT
uid 用户id INT(11) NOT NULL MULTIPLE NULL
time 收藏时间 INT(10) UNSIGNED NOT NULL NULL
wid 微博id INT(11) NOT NULL MULTIPLE NULL

类图

表与表之间不是独立的,存在着一定的关联。

表名 联系 说明
用户表与用户信息表 1:1 一个用户对应着一套用户信息
用户表与私信表 1:N 一个用户可以发多条私信
用户表与分组表 1:N 一个用户可以创建多个分组
用户表与@表 1:N 一个用户可以被多次@
用户表与微博表 1:N 一个用户可以发多条微博
分组表与关注表 1:N 一个分组里可以有多个关注用户
微博表与图片表 1:1 一篇微博对应着一组图片(图片可有可无)
微博表与评论表 1:N 一篇微博可以有多条评论
微博表与收藏表 1:N 一篇微博可以被多次收藏(多个用户收藏)

通过这个项目数据库建模以及其中各个表之间的关联,让自己对于整个项目的布局有了更进一步的认识和了解。

-------------The End-------------