《BBS论坛数据库设计(20101114)》由会员分享,可在线阅读,更多相关《BBS论坛数据库设计(20101114)(3页珍藏版)》请在金锄头文库上搜索。
1、BBS论坛数据库设计(使用porwedesigner建模工具把物理模型建立,并且导出建表的脚本以及测试数据)论坛(BBS)是互联网最常见的一个功能,下面我们就来分析下一个论坛的数据库是如何设计的。了解的功能用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息;用户发贴,后台数据库需要存放贴子相关信息,如贴子内容、标题等;论坛版块管理:后台数据库需要存放各个版块信息,如版主、版块名称、贴子数等。标识每个实体的属性(1) 论坛用户:用户昵称,密码,电子邮件,生日,性别,用户头像,用户等级,用户备注,注册日期,用户状态,用户积分,是否版主。(4)版块:版块ID,版块名称,版主,版块主题,本
2、版格言,点击率,发贴数。(2) 发贴:所属版块,发贴人,发贴表情,回复数量,标题,正文,发贴时间,点击数,状态,最后回复的用户,最后回复时间。(3) 回贴:回复主贴ID,所在版块ID,回贴人ID,回贴表情,回复内容,回贴时间。标识对象之间的关系(1) 跟贴和主贴有主从关系:我们需要在跟贴对象中表明它是谁的跟贴。(2) 版块和用户有关系:从用户对象中可以根据版块对象查出对应的版主用户的情况。(3) 主贴和版块有主从关系:需要表明发贴是属于哪个版块的。(4) 跟贴和版块有主从关系:需要表明跟贴是属于哪个版块的。绘制图膚于憾于MM苗M论坛川(BBSUscr)版块(BBSSection)冋贴(BBSR
3、eply)(BBSTopic)将图转换为表(1) 将各实体转换为对应的表,将各属性转换为各表对应的列。(2) 标识每个表的主键列,需要注意的是:没有主键的表添加ID编号列,它没有实际含义,用于做主键或外键,例如用户表中的“UID”列,版块表中添加“SID”列,发贴表和跟贴表中的“TID”列。(3) 在表之间建立主外键,体现实体之间的映射关系。BBSUser(论坛用户)表字段名中文名类型能否为空备注UID用户IDint否主键、自定增长UName用户昵称varchar否唯一值UPassword密码varchar否UEmail电子邮件varchar否UBirthady生日varcharUSex性别i
4、nt否UHead用户头像varcharUSatement用户备注varcharURegDate注册日期datetime否UState用户状态intUPoint用户积分intUIsSectioner是否版主int设定默认值,默认不是版主BBSSession(版块表)字段名中文名类型能否为空备注SID版块IDint否主键,自定增长SName版块名称varchar否唯一值SMasterlD版主IDint否外键(引用用户表的UID)SProfile版块主题varcharSStatement本版留言varcharSTopicCount发贴数intSClickCoount点击率intBBSTopic(发贴
5、表)字段名中文名类型能否为空备注TID发贴表IDint否主键自定增长TSID所在版块int否外键(引用版块表的SID)TUID发贴人int否外键(引用用户表的UID)TReplyCount回复数intTEmotion发贴表情varcharTTopic标题varchar否TContents正文varchar否TTime发贴时间datetime否TClickCoount点击率intTFlag状态intTLastReplyUseID最后回复用户ID外键(引用用户表的UID)TLastReplayTime最后回复时间datetimeBBSReply(跟贴表)字段名中文名类型能否为空备注RID跟贴表IDint否自定增长RTID回复主贴IDint否外键(引用发贴表的TID)RSID所在版块IDint否外键(引用版块表的SID)RUID发贴人IDvarchar否外键(引用用户表的UID)TEmotion发贴表情varcharRContent回贴内容varchar否RTime回贴时间datetime否说明:BBSReply表中RSID和RUID这两个字段没有也可以,加上这两个字段是为了方便查询,比如,要查询某个版块有多少个回贴,就可以直接在BBSReply表中直接查询,否则就要用到多表查询,那样查询效率低,所以在这个表里我们加冗余字段是为了方便查询功能。