微博系统设计.docx
《微博系统设计.docx》由会员分享,可在线阅读,更多相关《微博系统设计.docx(26页珍藏版)》请在冰豆网上搜索。
微博系统设计
滁州学院
课程设计报告
课程名称:
数据库原理与应用
设计题目:
微博系统
系别:
计算机与信息工程学院
专业:
计算机科学与技术
组别:
第一组
起止日期:
2012年5月24日~2012年6月日
********
计算机与信息工程学院二○一二年制
课程设计题目
微博系统
组长
陆
学号
班级
计科102
系别
计算机与信息工学院
专业
计算机科学与技术
组员
指导教师
黄晓玲
课程设计目的
课程设计所需环境
课程设计任务要求
课程设计工作进度计划
序号
起止日期
工作内容
分工情况
指导教师签字:
年月日
系(教研室)审核意见:
系(教研室)主任签字:
年月日
课程设计任务书
基于JSP的微博系统的设计与实现
1引言
1.1开发背景
微博,即微博客(MicroBlog)的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组件个人社区,以简短的文字更新信息,并实现即时分享。
最早也是最著名的微博是美国的twitter,根据相关公开数据,截至2012年1月份,该产品在全球已经拥有8000万注册用户。
2009年8月份中国最大的门户网站新浪网推出“新浪微博”内测版,成为门户网站中第一家提供微博服务的网站,微博正式进入中文上网主流人群视野,成为网民不可缺少的一部分。
1.2需求概述
本次任务是要实现一个微博系统,系统的主要功能包括:
当用户处于游客状态下能看到微博注册页面;注册用户可使用微博交互功能,如发表微博、删除自己发表的微博、评论微博、转发微博、收藏微博、解除收藏、加关注、解除关注以及对微博用户的查询;注册用户可以使用微博的个性化设置功能,对基本信息(头像、昵称等)、账号和密码进行设置;后台管理员可以对微博用户的相关信息进行查询、对微博信息进行查询并可以删除非法的微博信息。
2需求分析
2.1功能需求
2.1.1前台功能
用户注册
用户浏览主要提供给用户和游客浏览微博系统,在此页面上给新用户提供了微博系统的注册入口。
用户在注册时需要填写的基本信息包括:
邮箱地址、登录密码、昵称、性别、出生日期、所在省市地址、学校、真实姓名、身份证号等信息。
其中注册时使用的邮箱地址将是以后用户的登录账号。
为了防止恶意注册,用户在注册时加了验证码进行验证。
登录功能
当用户注册后,可以登录微博系统使用微博的交互功能,用户在登录时需要输入用户的邮箱地址、登录密码和验证码。
为方便用户更好的使用系统,在登录页面也通过了微博系统的注册入口。
用户修改信息
微博用户可以对自己的部分信息进行修改,具有上传自己的微博头像的功能。
发表微博、删除微博与评论微博
注册的微博用户可以发表微博,发表的微博将在页面上显示,显示微博的内容、发表用户的昵称、发表时间、转发次数、评论信息以及评论次数。
除此之外,用户还具有删除微博自己发表的微博的功能。
微博用户可以对自己关注的用户的微博信息进行评论。
转发、收藏微博与解除收藏
用户在浏览微博时,可以收藏自己喜欢的微博,也可以删除自己之前收藏的微博。
用户还可以转发自己关注的微博用户的微博信息,转发的微博将在自己的微博页面上显示。
加关注与解除关注
微博用户可以对自己感兴趣的用户进行加关注,当自己关注的用户也关注了自己,即相互关注,那这两位用户即互为好友关系。
对已经加了关注的用户也具有解除关注的功能。
2.1.2后台管理
⑴用户管理:
主要是对微博用户的注册信息进行管理,可以查询微博用户的相关信息。
⑵微博信息管理:
主要是根据微博用户查看该用户的微博信息,删除非法的微博信息。
2.2业务规则分析
业务规则分析主要是分析数据之间的约束以及数据库约束。
基于以上的功能需求,通过进一步的理解,微博系统的业务规则如下:
⑴只有注册的微博用户才具有对微博信息进行评论与转发等功能,普通的游客只能看到部分的微博信息,且不能进行转发、评论与收藏等。
⑵每位微博用户由用户ID号唯一标识,微博用户的ID号是数据库系统生成的流水号。
⑶由于用户是使用邮箱地址进行系统登录的,所以一个邮箱只能注册一个用户。
⑷用户发表的每条微博都由微博ID号唯一标识,微博信息的ID号是数据库系统生成的流水号。
⑸一个用户可以发表多条微博,收藏多条微博,且用户可以收藏自己的微博,但是不能重复收藏微博,每条收藏信息都由收藏ID号唯一标识。
⑹用户可以关注其他用户,用户之间的关注由关注ID号唯一标识,且用户不能重复关注和不能关注自己。
⑺用户可以修改自己当初的注册信息,但是为了信息的真实性,不可以修改自己的真实姓名和身份证号
⑻用户对微博的每条评论信息由评论ID号唯一标识,该ID号由数据库系统自动生成。
2.3实体集及属性
根据上述功能需求和业务规则,可确定的实体集有管理员、用户、微博信息、用户关系根据以上的需求分析和业务规则,实体集的E-R图分别设计如下:
⑴管理员(admin)实体集。
其属性有:
自增id(id)、账号(a_id)、姓名(登录时用姓名登录)(a_name)和密码(a_password)等。
图2-1为管理员实体集的E-R图。
图2-1管理员实体集
⑵用户(user)实体集。
其属性有:
用户编号(u_id)、用户名(邮箱)(u_email)、用户密码(u_password)、用户昵称(u_nickname)、用户性别(u_sex)、用户出生年份(u_year)、用户出生月份(u_month)、用户个性签名(u_motto)、用户个人简介(u_label)、用户头像(u_face)、真实姓名(u_realname)、学校(u_school)、身份证号(u_cardid)、用户所在省份或自治区(u_province)和用户所在市(u_city)等。
图2-2为用户实体集的E-R图。
图2-2用户实体集
⑶微博(weibo)实体集。
其属性有:
微博编号(w_id)、用户id(u_id)、内容(w_content)、发表时间(w_sendtime)、转发次数(w_count)和转发源(w_source)等。
图2-3为微博实体集的E-R图。
图2-3管理员实体集
⑷用户关注(friend)实体集。
其属性有:
关注编号(id)、被关注的用户编号(u_id)、当前用户编号(f_id)和好友备注(f_note)等。
图2-4为用户关系实体集的E-R图。
图2-4用户关注实体集
2.4确定联系集及E-R图
基于以上设计的实体集,可确定以下的联系集:
微博和用户之间的“收藏(favorite)”联系集和“评论(comment)”联系集。
收藏(favorite)其描述的属性有:
收藏编号(f_id)、收藏微博的用户编号(u_id)、收藏的微博编号(w_id)、收藏时间(f_time);评论(comment)其描述的属性有:
评论编号(c_id)、评论的微博编号(w_id)、评论微博的用户编号(u_id)、评论的内容(c_content)、评论的时间(c_sendtime)。
由以上的全部实体集。
联系集和其属性的E-R如图2-5所示。
图2-5微博系统整体E-R图
3数据库设计
3.1物理模型设计
整个微博系统的数据库的物理模型PDM图如图3-1所示:
图3-1微博系统的PDM图
3.1逻辑结构设计
在以上的实体关系图(E-R图中),存在四个实体集和两个联系集,在转换为数据库模式时,本系统将对应六个对应的关系表,在关系表中主码属性加粗体和下划线,外码属性加粗斜体区分。
⑴admin表:
由admin强实体集转化而来,其逻辑结构如表3-1所示。
表3-1admin表
属性名称
数据类型
属性描述
备注
id
int(20)
管理员编号
主键
a_id
int(20)
管理员账号
a_name
varchar(20)
管理员姓名
a_password
varchar(20)
管理员密码
⑵user表:
由user强实体集转化而来,其逻辑结构如表3-2所示。
表3-2user表
属性名称
数据类型
属性描述
备注
u_id
int(20)
用户编号
主键
u_email
varchar(20)
用户邮箱
u_password
varchar(20)
用户密码
u_nickname
varchar(20)
用户昵称
u_sex
varchar
(2)
性别
u_year
varchar(4)
出生年份
u_month
varchar
(2)
出生月份
u_motto
varchar(100)
个性签名
u_label
varchar(50)
用户简介
u_face
varchar(500)
用户头像路径
u_realname
varchar(10)
姓名
u_school
varchar(20)
学校
u_cardid
varchar(20)
身份证号
u_province
varchar(10)
所在省份
u_city
varchar(10)
所在城市
⑶微博表:
由weibo强实体集转化而来,其逻辑结构如表3-3所示。
表3-3weibo表
属性名称
数据类型
属性描述
备注
w_id
int(20)
微博编号
主键
u_id
int(20)
发表微博的用户编号
外键
w_content
varchar(200)
微博内容
w_sendtime
varchar(20)
发表时间
w_count
int(20)
转发次数
w_source
int(20)
来源
⑷用户关注表:
有friend强实体集转化而来,其逻辑结构如表3-4所示。
表3-4friend表
属性名称
数据类型
属性描述
备注
id
int(20)
关注编号
主键
u_id
int(20)
被关注的用户编号
外键
f_id
int(20)
当前用户编号
f_note
varchar(20)
好友备具信息
⑸微博评论表:
由comment联系集转化而来,其逻辑结构如表3-5所示。
表3-5comment表
属性名称
数据类型
属性描述
备注
c_id
int(20)
评论编号
主键
w_id
int(20)
评论的微博的编号
外键
c_content
varchar(200)
评论内容
u_id
int(20)
评论微博的用户编号
外键
c_sendtime
varchar(20)
评论时间
⑹微博收藏表:
由favorite联系集转化而来,其逻辑结构如表3-6所示。
表3-6favorite表
属性名称
数据类型
属性描述
备注
f_id
int(20)
收藏编号
主键
u_id
int(20)
收藏微博的用户编号
外键
w_id
int(20)
收藏的微博编号
外键
f_time
varchar(20)
收藏时间
4数据库系统实现
4.1前台功能实现
微博用户的个人主页效果如图4-1所示:
图4-1个人主页
4.1.1系统注册
描述:
进入微博系统,新用户需输入相关信息进行微博系统的注册。
核心代码(部分):
style="top:
350px;left:
350px;position:
absolute;width:
650px;height:
530px;align:
center;border:
1pxsolidred">
我的邮箱
*href="
id="nomail">我没有邮箱
温馨提示:
请输入正确的常用邮箱如:
example@,它将成为您未来的登录账号!
创建密码
*
确认密码
*
昵 称
*
性 别
男
女
*
出生日期:
(注:
此处代码省略)
2017年
(注:
此处代码省略)
12月
所 在 地
setup()
*
我的学校
真实姓名
*
身份证号
*
验 证 码
*<%=request.getAttribute("info")!
=null?
request.getAttribute("info"):
""%>