您好,欢迎访问三七文档
数据库系统概论实验-微博系统设计实验名称:数据库系统概论实验-微博系统设计实验人员:实验时间:实验地点:实验要求:了解并使用微博:参考网站:搜狐微博t.sohu.com、新浪微博weibo.com或腾讯微博t.qq.com等;根据你了解到的情况和分析,划分微博的基本功能,完成需求分析,并画出业务流程图;(参考搜索关键词:微博数据库设计)基本功能:一、需求分析1、功能需求(1)功能描述用户注册功能用户注册时,需要分配给每一个用户一个独立的ID,并且保存用户的用户名、密码、出生日期、单位等信息。消息管理功能发表消息:用户可以随时发表140个字左右的消息,其中可包括音乐,图片,视频等,发布时会显示发布者、发布时间等。评论消息:用户可对其它用户发表的消息进行评论,每条消息均会显示评论条数与评论内容、评论时间。删除消息:用户对自己不满意或其它原因的消息可删除。删除评论:用户对自己不满意或其它原因的评论可删除。转发消息:用户可以转发关注者所发表的消息,转发后,每条消息转发次数及转发时间均会显示。查看消息:用户可以在当前页面查看到被自己关注者的所有消息,按时间排序。收藏消息:用户可对其它用户发表的感兴趣的消息收藏,供以后查看,每条消息下均会显示收藏次数。用户关注功能用户可以关注他人,同时也可以被他人关注。创建关注组:当用户关注的人特别多时,显得有些不易于查看被关注者发表的信息,关注组即是对众多用户关注的人进行再次分组,并添加显示名称,可最为快捷的知道想要特别关注的一些人的最新动态。删除关注组:即取消关注组里面人的特别关注,此处只是删除关注组,并不会取消组里用户的关注。添加用户:添加已关注的用户至关注组中。删除用户:删除关注组中的用户。用户查找功能用户可以查找其他的用户并关注;用户可以查找已经关注的好友;用户可以查找自己之前发布过的消息;用户可以查找好友发布过的消息。(2)功能流程图登陆2、数据需求(1)数据需求描述消息:消息包含消息编号,用户编号,发表时间,转发次数,评论次数组成。评论:由消息编号,评论编号,用户编号,评论时间,评论内容组成。用户:用户由用户编号,妮称,用户头像,邮箱,性别,密码,真实姓名,皮肤编号,QQ,毕业院校,职位,手机号,自我介绍,用户标签,兴趣,个人博客地址,注册时间组成。关注组:由关注组编号,被关注组编号,关注名称,创建时间组成。(2)数据字典1.用户表:开始注册消息管理关注管理查找管理评论管理转发管理数据项名取值范围数据项含义说明用户编号以U开头加10位数字组成用户编号,唯一识用户的字段用户名任意字符即用户在微博中显示的妮称。密码至少6个可打印字符用户登陆所用密码性别男,女,保密用户性别自我介绍任意可打印字符用户一些简要的自我介绍2、普通消息表:数据项名取值范围数据项含义说明消息编号以M开头加15位数字组成用户发表消息编号用户编号以U开头加10位数字组成用户编号消息内容任意可打印字符用户发表消息内容发表时间时间用户发表消息时间3、转发消息表:数据项名取值范围数据项含义说明消息编号以M开头加15位数字组成用户发表消息编号用户编号以U开头加10位数字组成用户编号转发时间时间用户转发消息时间4、评论表:数据项名取值范围数据项含义说明评论编号以R开头加15位数字组成用户评论消息编号同消息编号同消息编号用户编号同用户编号同用户编号评论时间时间用户发表评论时间评论内容任意可打印字符用户发表评论内容5.关注表:数据项名取值范围数据项含义说明用户编号同用户编号同用户编号被关注者编号同用户编号同用户编号关注时间时间关注时间(3)数据约束描述(暂无)二、功能流程图登陆三、E—R图1、用户开始注册消息管理关注管理查找管理评论管理转发管理用户用户名自我介绍性别用户编号密码2、消息3、转发表Relay4、评论表Commit消息用户编号内容消息编号时间转发消息用户编号消息编号时间5关注表Attention四、数据库的设计消息用户编号消息编号评论编号时间时间关注用户编号被关注者编号时间1.用户user表:属性名称数据类型属性说明备注Uidchar(11)用户编号主键UNamevarchar(20)用户名UPwdvarchar(20)密码USexvarchar(2)性别Uinfovarchar(MAX)自我介绍2.消息Message表:属性名称数据类型属性说明备注Midchar(20)消息编号主键Uidvarchar(11)用户编号外键Mcontentvarchar(MAX)消息内容Mtimevarchar(20)发表时间3.转发消息表:(Relay)属性名称数据类型属性说明备注Midchar(20)消息编号主键Uidvarchar(11)用户编号主键、外键Rtimevarchar(20)转发时间4、评论表(Commit)属性名称数据类型属性说明备注Cidchar(20)评论编号主键Midchar(20)消息编号主键Uidvarchar(11)用户编号外键Ctimevarchar(20)评论时间Ccontentvarchar(MAX)评论内容5、关注表(Attention)属性名称数据类型属性说明备注Uidchar(11)用户编号主键Uid2char(11)被关注者编号主键Atimevarchar(20)关注时间五、脚本在关系DBMS中设计数据库,实现E-R图中的实体和联系,每个关系模式至少为3NF,如果不是要在报告中说明原因;在微博中共有以下对象:1、用户(User)2、消息(Message)3、转发表(Relay)4、评论表(Commit)5、关注表(Attention)关系模式用户表User(UserID,Pwd,Name)(UserIDPwd,UserIDName)消息表Messages(MID,UserID(AutherID),MessagesContent,PublishTime)(MIDUserID,MIDContent,MIDPublishTime)转发表Relay(MID,UserID(RelayID),RelayTime)(MIDUserID,MIDRelayTime)评论表Commit(CommitID,UserID(CommittorID),MID,CommitTime,CommitContent,)(CommitIDUserID(CommittorID),CommitIDMID,CommitIDCommitTime,CommitIDCommitContent)关注表Friends(UserID,BeUserID,Atime)设计E-R图,理清实体的基本资料和相互之间的关系;数据库设计完毕后,要求能够通过SQL语句实现以下查询:1.查询某人最近发出的30条信息设该人的编号为:00002D7F-4FSELECTTOP(30)MId,Message.UId,UName,MContentFROMMessage,UserinfowhereMessage.UId=Userinfo.UIdandMessage.UId='00002D7F-4F'orderbyMessage.MIdDESC2.查询某人所有关注的人查询姓名为“9CF4BC35-22E5-4867-A”(编号为00002D7F-4F)所关注的人及其信息SELECTAttention.UId,UIdbe,ATime,Uname,USex,UInfofromAttention,UserinfowhereUserinfo.UName='9CF4BC35-22E5-4867-A'andAttention.UId=Userinfo.UId3.查询某人都被哪些人关注查询姓名为9CF4BC35-22E5-4867-A的被那些人关注及信息SELECTUIdbe,Uname,Attention.UId,USex,UInfo,ATimefromAttention,UserinfowhereUserinfo.UName='9CF4BC35-22E5-4867-A'andAttention.UIdbe=Userinfo.UId4.查询甲和乙共同关注的人SELECTUserinfo.UId,Uname,USex,UInfofromAttention,UserinfowhereUserinfo.UIdin(SELECTUname,UIdbe,Attention.UId,USex,UInfo,ATimefromAttention,UserinfowhereUserinfo.UName='甲'andUserinfo.UId=Attention.UIdandAttention.UIdbe=any(SELECTUIdbefromAttention,UserinfowhereUserinfo.UName='乙'andUserinfo.UId=Attention.UId))?如何改正SELECTUname,UIdbe,Attention.UId,USex,UInfo,ATimefromAttention,UserinfowhereUserinfo.UName='甲'andUserinfo.UId=Attention.UIdandAttention.UIdbe=any(SELECTUIdbefromAttention,UserinfowhereUserinfo.UName='乙'andUserinfo.UId=Attention.UId)5.查询某人所关注的人中最新发出的30条信息SELECTTOP(30)MId,MContentFROMMessage,UserinfoWHEREMessage.UId=Userinfo.UidANDUserinfo.UName=(SELECTDISTINCTUNameFROMUserinfo,AttentionWHEREUserinfo.Uid=any(SELECTUidFROMAttentionWHEREUId='00002D7F-4F'))6.ORDERBYMidDESC查询某条消息的评论查询编号为M00000000003的消息的评论SELECTUName,UInfo,Comment.MId,MContent,CId,CContent,CTimeFROMComment,Userinfo,MessageWHEREComment.MId='M0000000003'ANDComment.MId=Message.MIdANDComment.UId=Userinfo.UId7.查询某条消息都被哪些人转发selectMId,Relay.UId,Userinfo.UName,RTimefromRelay,UserinfowhereMId='M0000000003'ANDRelay.UId=Userinfo.UId8.查询所有包含“十八大”的消息SELECTMID,UId,MContent,MTimeFROMMessageWHEREMContentLIKE'%十八大%'
本文标题:微博数据库系统设计
链接地址:https://www.777doc.com/doc-5217124 .html