预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

BBS论坛数据库设计 一、需求分析 BBS论坛是一个WEB系统,可以为大家提供一个交流、互动的平台。经过分析,BBS论坛需要实现以下功能: (1)用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息; (2)用户发贴,后台数据库需要存放贴子相关信息,如贴子内容、标题等; (3)浏览、查找帖子,数据库需要实现查看和查找的功能。 (4)论坛版块管理,后台数据库需要存放各个版块信息,如版主、版块名称、贴子数等。 二、系统设计 根据BBS论坛的功能,设计的基本实体有BBSUser(用户)、BBSTopic(主贴)、BBSReply(回贴)、BBSSection(版块)、。 1、每个实体具有的属性 (1)用户:用户昵称,密码,电子邮件,生日,性别,用户头像,用户等级,用户备注,注册日期,用户状态,用户积分,是否版主。 (2)主贴:所属版块,发贴人,发贴表情,回复数量,标题,正文,发贴时间,点击数,状态,最后回复的用户,最后回复时间。 (3)回贴:回复主贴ID,所在版块ID,回贴人ID,回贴表情,回复内容,回贴时间。 (4)版块:版块ID,版块名称,版主,版块主题,本版格言,点击率,发贴数。 2、各对象间的关系 (1)跟贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴。 (2)版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主用户的情况。 (3)主贴和版块有主从关系:需要表明发贴是属于哪个版块的。 (4)跟贴和版块有主从关系:需要表明跟贴是属于哪个版块的。 3、E-R图 BBSUsers UID Uname UEmail UBirtheday Usex UStatement Uclass URegDate UPoint UState 论坛用户 (BBSUser) 发表 回帖 (BBSReply) 板块 (BBSSection) 主帖 (BBSTopic) 属于 管理 属于 发表 属于 4、将E-R图转换为表 (1)将各实体转换为对应的表,将各属性转换为各表对应的列。 (2)标识每个表的主键列。 (3)在表之间建立主外键,体现实体之间的映射关系。 BBSUser(用户)表 字段名中文名类型能否为空备注UID用户IDint否主键、自定增长Uname用户昵称varchar否唯一值UPassword密码varchar否UEmail电子邮件varchar否UBirthady生日varcharUSex性别int否UHead用户头像varcharUSatement用户备注varcharURegDate注册日期datetime否UState用户状态intUPoint用户积分intUIsSectioner是否版主int设定默认值,默认不是版主 BBSSession(版块表) 字段名中文名类型能否为空备注SID版块IDint否主键,自定增长SName版块名称varchar否唯一值SMasterID版主IDint否外键(引用用户表的UID)SProfile版块主题varcharSStatement本版留言varcharSTopicCount发贴数intSClickCoount点击率int BBSTopic(主贴表) 字段名中文名类型能否为空备注TID发贴表IDint否主键自定增长TSID所在版块int否外键(引用版块表的SID)TUID发贴人int否外键(引用用户表的UID)TReplyCount回复数intTEmotion发贴表情varcharTTopic标题varchar否TContents正文varchar否TTime发贴时间datetime否TClickCoount点击率intTFlag状态intTLastReplyUseID最后回复用户ID外键(引用用户表的UID)TLastReplayTime最后回复时间datetime BBSReply(跟贴表) 字段名中文名类型能否为空备注RID跟贴表IDint否自定增长RTID回复主贴IDint否外键(引用发贴表的TID)RSID所在版块IDint否外键(引用版块表的SID)RUID发贴人IDvarchar否外键(引用用户表的UID)TEmotion发贴表情varcharRContent回贴内容varchar否RTime回贴时间datetime否 三、数据库实施 1、创建表 (1)BBSUser(用户)表 CREATETABLEBBSUser( UIDINTNOTNULLPRIMARYKEY, UNameVARCHAR(10)NOTNULLUNIQUE, UPasswordVARCHAR(20)NOTNULL, UEmailVARCHAR(20)NOTNULL, UBirthdayVARCHAR(20), USexINTNOTNULL, UHeadVARCHAR