当前位置:文档之家› 微博需求分析-数据库设计文档

微博需求分析-数据库设计文档

微博系统详细设计说明书2012年5月14日一.系统概述1.1:构建系统目的(依据需求调研):微博系统的业务总体目的是建立在一个先进,高效,安全的能被所以和应用于所以微博用户的交流系统。

系统采用B/S架构体系,即采用浏览器访问,服务器端由apache开元发布系统tomcat7.0及mysql数据库服务器组成,开发工具Myeclipse9.0,客户可以由通用的浏览器访问。

1.2:需求文档及规范说明:依据需求文档来规范美工静态页面制作,设计整体软件系统和数据库搭建。

二.数据库设计数据库设计兼顾前台后台相互关联调用,设计的表明晰如下:1.1各表详细说明:1.1.1前台用户信息表(users):1.1.2前台用户关系表(relations):1.1.3微博信息表(weibo):1.1.4微博评论表(comment):1.1.5 收藏表(collection)1.1.6 后台用户表(admins)1.1.7 权限表 (permissions)1.1.8权限内容表(percontent)1.1.9 微博热议内容表(bloghot)三.前台的HTML静态页面设计四.微博系统前台功能设计1.用户信息管理注册时用户输入自己的基本信息,用户名密码不得为空,登陆时候,输入相应用户名密码,经过验证正确后方可登陆个人信息主页面,进入登陆界面用户可以通过点击个人信息账号进行个人信息设置和修改。

1.1注册用户静态界面:register.jsp1.1.1 功能描述:用户注册信息,系统将用户前台页面输入的个人注册信息获取,提交到后台(并不是系统后台),并且写入数据库。

注册的信息包含:邮箱,创建密码(确认密码),昵称,性别,所在地和验证码,输入规范正确后方可注册微博用户成功。

1.1.2 功能实现:用户前台注册页面输入相应信息,信息验证:对用户输入的邮箱验证、验证两次密码是否一致、验证验证码是否正确、性别和昵称验证是否填写。

系统获取到对应表单信息后,提交到相应servlet(RegisterServlet.java)中去,并且通过biz(RegisterBizImpl)调用dao(UsersDaoImpl.java)层代码进行输入mysql数据库中。

1.2用户登录:静态页面:login.jsp1.2.1功能描述:用户登录微博主页面,验证:用户名和密码是否输入。

1.2.2功能实现:提交到后台Servlet(LoginServlet),获取前台页面用户输入的用户名和密码内容,提交到Biz(LoginBizImpl)层,并调用Dao(UsersDaoImpl)层代码和数据库交互来验证用户输入信息是否正确。

1.3设置个人信息账号(修改个人信息)静态页面:modify.jsp修改个人信息截图修改个人密码:修改个人头像:1.3.1功能描述:修改个人信息,包含修改个人简单信息、密码、头像,对两次密码进行判断1.3.2 功能实现:首先,用户进入此页面后,显示出用户自身全部信息,用户对此信息进行修改,并且把用户ID以隐藏表单形式显示在页面中,修改密码过程中验证两次密码输入是否一致,修改头像判断用户是否选择了新的头像,进入上传头像操作。

用户将自己信息修改后,后台Servlet(ModifyServlet.java)获取前台用户提交信息,并且将此信息修改提交到Biz(ModifyBizImpl.java)层再调用到dao(ModifyDaoImpl.java)层实现数据库更新。

2.微博信息管理:微博信息管理是系统模块中重要的组成部分,主要负责对用户微博信息的管理,包含发送微博,评论微博,转发微博,收藏微博,删除微博,对于微博的模糊查询和微博信息的分页展示。

2.1 发送微博:静态页面 mainMicroblog.jsp2.1.1 功能描述:进入(个人信息)微博主页面后,在最醒目的位置,左上方显示微博发送控件,输入微博内容后点击发送即可实现微博发送功能,还可以添加图片,进行图片上传功能,将微博写入数据库中。

2.1.2 功能实现:Servlet(SendMicroblogServlet.java)获取前台页面用户输入要发送微博的内容,并且(从回话中)获取登陆用户的ID,一起封装到微博(Microblog.java)的实体类中,然后提交到biz(SendMicroblogBizImpl.java)层并且调用dao(MicroblogDaoImpl.java)层来实现微博信息的(添加)发送。

2.2 评论微博:2.2.1:功能描述用户可以通过评论微博功能对自己希望评论的微博进行评论,并且紧随微博显示在微博后面。

2.2.2:功能实现:Servlet(CommentMicroblogServlet.java)获取到前台用户对相应微博信息的评论内容,同时获取此微博信息的ID,然后封装评论实体(Comment.java)类通过Biz(CommentMicroblogBizImpl.java)层,调用dao(CommentDaoImpl)层代码,实现添加评论信息。

2.3 转发微博:2.3.1 功能描述:用户根据自己主观喜好的微博信息可进行转发操作,转发后会将此微博信息作为自己的微博进行显示,同时自己的粉丝也可以看到此微博信息。

2.3.2 功能实现:Servlet(ForWardMicroblogServlet.java)获取到用户想要转发的微博信息ID,然后获取此微博信息内容,调用Biz(ForWardMicroblogBizImpl.java)层调用dao(MicroblogDaoImpl.java)层代码首先实现要转发的微博转发次数+1,其次作为转发者自己的微博,又要添加一条新的微博信息,要注意新添加的微博信息外键值将由其他的UID值转换为转发者的ID。

2.4 收藏微博:2.4.1 功能描述:用户可以对所关注的人的微博进行收藏,其作用为不让自己的粉丝看到,和转发的作用正好相反。

2.4.2 功能实现,在微博浏览页面中,点击收藏后,首先后台Servlet(CollectionMicroblogServlet.java)获取到用户所要收藏微博的信息(获取收藏微博的ID),通过Biz(CollectionBizImpl.java)层调用Dao层(CollectionDaoImpl.java)来添加到收藏表中(因此,收藏表肯定要有一个外键对应用户)。

2.5 删除微博:2.5.1 功能描述:用户可以对自己发表过的微博进行删除,因此会伴随提示”删除微博,会连同相应的评论删除,是否继续?”,因此新显示的微博信息将不会有此信息。

2.5.2 功能实现:首先Servlet(DeleteMicroblogServlet.java)获得前台页面用户要删除微博的信息(ID),如果此微博信息和发送者是相同一个人的话,那么次信息执行删除操作,否则提示没有权限删除他人微博。

执行删除操作,通过Biz(MircoblogBizImpl)层调用Dao(MircoblogDaoImpl)层执行微博表相应记录删除。

2.6 微博模糊查询:2.6.1 功能描述:用户要搜寻相应微博信息,可以进行模糊查询。

用户可以在模糊查询表单内搜索相应信息点击查询即可查出相应微博,但是如果没有相应信息则提示”没有搜索到相应微博信息”。

2.6.2 功能实现:首先在Servlet(MicroblogFuzzyFindServlet.java)中获取模糊查询表单内容,通过Biz(MircoblogBizImpl)层调用Dao(MircoblogDaoImpl)层来查找相应信息,返回ArrayList集合信息。

2.7 微博信息分页显示:2.7.1 功能描述,所以登陆者的微博和其关注人的微博信息都要在个人主页内分页显示,然后用户点击”上一页”或者”下一页”进行分页查找微博信息。

2.7.2 功能实现:首先作为面向对象编程思想,要建立起一个相应的分页类PageBean.java(包含的变量:总记录数count(*),总页数,每页多少条记录,当前第几页,数据信息的结合List),按照PageBean的思路来搜索数据库用户想要的相应页数。

3.好友信息管理 FriendsManager对好友管理是微博系统中一个非常重要的模块,通过对好友管理,用户可以完成添加关注操作,取消关注,互为好友,搜寻好友,等功能。

对自己感兴趣的人进行好友操作,从而时刻关注好友的微博信息更新。

3.1添加关注 AddAttention3.1.1 功能描述:登陆的用户可以对没有加为关注的人进行添加关注操作,若被添加者在操作前与该登陆者无关注和被关注的关系,则二人关系为关注关系,既为单向关注关系。

3.1.2 功能实现:用户点击了还没有关注的陌生人的关注后,首先后台Servlet(AddAttentionServlet.java)获取到要关注人的信息(ID),通过Biz(AttentionBizImpl)层判断调用Dao(AttentionDaoImpl)层来判断此用户是否是已经关注我的好友,如果没有此用户关注登陆者的信息,那么添加关注表,作为登陆者关注人的信息。

反之,状态字段应相应改变,标志此用户和登陆者为互为关注关系。

3.2 互为好友 EachOtherFirends3.2.1 功能描述:衔接上一功能说明,登陆者还可以添加自己的粉丝好友作为自己关注的人。

3.2.2 功能实现,同样衔接上一功能说明,如果添加关注时候判断其好友已经是自己粉丝,那么状态关系表中状态字段应有所改变,状态为互为好友。

3.3 搜寻好友(换一换) FindFirends3.3.1 功能描述:用户在自己的主页内同时要显示出自己还没有关注人的信息,同样可以通过换一换搜索还没关注人的陌生人信息。

3.3.2 功能实现:很类似与分页显示微博信息,应用到PageBean功能,但是不同与分页显示的是分页显示是用户决定要看哪一页信息,换一换是由java随机数来决定显示哪一页陌生人信息。

也就是通过java随机数来产生要显示的每一页信息。

相应Servlet(FindFirendsServlet.java)生成java随机数来通过PageBean获取随机的页的陌生人信息。

3.4 取消关注 DeleteAttention3.4.1 功能描述;用户还可以对已经加过的好友进行取消关注操作。

静态页面:用户在除了登陆后的个人主页内还可以选择菜单进行进入我的好友管理静态页面,显示的所以好友,关注的好友信息,可以点击相应的取消关注操作。

3.4.2 功能实现:首先Servlet(DeleteAttentionServlet.java)获取到所要取消关注人的信息(ID),思路和添加好友,互为关注的思路正好相反,通过Biz(AttentionBizImpl.java)层调用Dao(AttentionDaoImpl.java)层,首先判断此用户是单向关注还是双向互为好友,如果是前者删除关系表中相应记录,如果是后者,不但要删除相应关系记录,还要修改关系表中状态字段值。

相关主题