微博系统设计Word文件下载.docx
《微博系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《微博系统设计Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
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
管理员账号
a_name
varchar(20)
管理员姓名
a_password
管理员密码
⑵user表:
由user强实体集转化而来,其逻辑结构如表3-2所示。
表3-2user表
u_id
用户编号
u_email
用户邮箱
u_password
用户密码
u_nickname
用户昵称
u_sex
varchar
(2)
性别
u_year
varchar(4)
出生年份
u_month
出生月份
u_motto
varchar(100)
个性签名
u_label
varchar(50)
用户简介
u_face
varchar(500)
用户头像路径
u_realname
varchar(10)
姓名
u_school
学校
u_cardid
身份证号
u_province
所在省份
u_city
所在城市
⑶微博表:
由weibo强实体集转化而来,其逻辑结构如表3-3所示。
表3-3weibo表
w_id
微博编号
发表微博的用户编号
外键
w_content
varchar(200)
微博内容
w_sendtime
发表时间
w_count
转发次数
w_source
来源
⑷用户关注表:
有friend强实体集转化而来,其逻辑结构如表3-4所示。
表3-4friend表
关注编号
被关注的用户编号
f_id
当前用户编号
f_note
好友备具信息
⑸微博评论表:
由comment联系集转化而来,其逻辑结构如表3-5所示。
表3-5comment表
c_id
评论编号
评论的微博的编号
c_content
评论内容
评论微博的用户编号
c_sendtime
评论时间
⑹微博收藏表:
由favorite联系集转化而来,其逻辑结构如表3-6所示。
表3-6favorite表
收藏编号
收藏微博的用户编号
收藏的微博编号
f_time
收藏时间
4数据库系统实现
4.1前台功能实现
微博用户的个人主页效果如图4-1所示:
图4-1个人主页
4.1.1系统注册
描述:
进入微博系统,新用户需输入相关信息进行微博系统的注册。
核心代码(部分):
<
divid="
div1"
style="
top:
350px;
left:
position:
absolute;
width:
650px;
height:
530px;
align:
center;
border:
1pxsolidred"
>
<
formaction="
zhuce_user.jsp"
name="
zhuce"
method="
post"
>
我的邮箱
<
inputtype="
text"
email"
fontcolor="
red"
*<
/font>
atarget="
_blank"
href="
id="
nomail"
我没有邮箱<
/a>
br>
温馨提示:
请输入正确的常用邮箱如:
example@,它将成为您未来的登录账号!
创建密码<
password"
确认密码<
querenpassword"
昵&
nbsp;
&
称<
nickname"
性&
别
radio"
sex"
value="
男"
checked>
男
女"
女
出生日期:
selectname="
year"
(注:
此处代码省略)
optionvalue="
2017"
2017<
/option>
<
/select>
年
month"
(注:
optionvalue=12>
12<
月<
所&
在&
地
province"
id="
option>
city"
SCRIPTlanguage="
javascript"
setup()<
/SCRIPT>
我的学校
school"
真实姓名<
name"
身份证号<
id"
验&
证&
码<
code"
imgsrc="
checkcode.jsp"
%=request.getAttribute("
info"
)!
=null?
request.getAttribute("
):
"
%>
submit"
立即开通"
&
reset"
信息重置"
/form>
<
/div>
div2"
885px;
270px;
images/zhuce2.png"
页面效果如图4-2所示:
图4-2系统注册页面
4.1.2登录系统
注册微博的用户登录微博系统,使用邮箱地址进行登录,且在登录时需要输入验证码。
center>
h1>
登陆微博系统<
/h1>
hr>
check.jsp"
用户ID:
密&
码:
验证码:
maxlength="
4"
size="
登陆"
重置"
ahref="
regist.jsp"
新用户注册<
/center>
页面效果如图4-3所示:
图4-3系统登录页面
4.1.3发表微博
微博用户输入欲发表的内容,点击“发布”进行发表。
images/fabiao.png"
fabiao.jsp"
textareaname="
fabiao"
rows="
9"
cols="
32"
style="
background-color:
#00FFFF;
/textarea>
发布"
body>
%//发表微博,往数据库中加入微博的信息
intuid=Integer.parseInt(session.getAttribute("
uid"
).toString());
Useruser=newUser();
user=DAOFactory.getIUserDAOInstance().findById(uid);
Weiboweibo=newWeibo();
Stringw_content=request.getParameter("
);
weibo.setW_content(w_content);
weibo.setW_count(0);
weibo.setU_id(uid);
weibo.setW_source(uid);
weibo.setW_sendtime(newDate().toLocaleString().toString());
if(DAOFactory.getIWeiboDAOInstance().doCreate(weibo)){%>
h2>
微博已经成功发表!
/h2>
buttonvalue="
返回"
style="
width:
170;
30"
onClick="
window.location.href='
welcome.jsp'
返回您的主页<
/button>
%}%>
/body>
页面效果如图4-4所示:
图4-4发表微博页面
4.1.4用户修改注册信息
通过点击“修改个人信息”链接,跳到修改注册信息的页面,为了方便用户修改信息,系统会显示出用户当前的注册信息,用户可以有选择性的进行修改。
%
intuid=Integer.parseInt(session.getAttribute("
%>
xiugai_xinxi.jsp"
修改邮箱
value="
%=DAOFactory.getIUserDAOInstance().findById(uid)
.getU_email()%>
昵&
称
.getU_nickname()%>
性&
女
出生日期:
年<
月<
个性签名:
motto"
5"
24"
.getU_motto()==null?
"
:
DAOFactory
.getIUserDAOInstance().findById(uid).getU_motto()%>
个性简介:
label"
.getU