您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 博客系统数据库设计模板
数据库课程设计题目博客信息管理系统班级:学号:姓名:提交日期:2010年3月13日目录1.项目背景......................................................................................32.需求分析......................................................................................32.2功能划分.................................32.3功能模块.................................33、ER模型..........................................................................................43.1ER模型的逻辑模型与物理模型...............43.2转换为关系模式...........................54、表结构...........................................................................................65、完整性设计..................................................................................95.1、主键约束...............................95.2、外键约束...............................95.3、检查约束:............................105.4、惟一约束:............................106数据库对象设计(20分).......................................................116.1触发器:................................116.2视图...................................117数据库实现..................................................................................117.1建立数据库..............................117.2初始化所有表:..........................157.3实现查询功能...........................151.项目背景Blog即WeBlog,WeBlog就是在网络上发布和阅读的流水记录,通常称为“网络日志”,简称为“网志”。它是继Email、BBS、IM之后出现的第四种全新的网络交流方式。它绝不仅仅是一种单向的发布系统,而且有着极其出色的交流功能,与个人主页相比,博客是一种方便的、个人化的、即时性很强的网页。与传统的电子邮件、BBS和ICQ这三种互联网沟通方式相比,博客是一种较严肃的沟通工具。与传统门户网站相比较,博客则进一步深化了知识管理的专业化和个人化。简言之,Blog就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。目前的web开发竞争日趋激烈,广大用户对网络服务的要求越来越高,针对此情况参考WordPress为广网络用户研发出一套博客系统,该系统可以作为一个服务模块与其他服务模块共同作为门户网站的一部分,从而为广大网民提供更优质的服务。2.需求分析2.1功能目标1、规范完善的基础信息设置2、操作简单,快捷方便3、数据存储安全可靠4、信息分类清晰准确5、强大的查询功能,保证数据查询的准确6、对用户输入的数据,系统进行严格的审核的数据检验,尽可能排除人为的错误。7、拓展性能强大,升级方便。2.2功能划分系统功能:1、个人资料的录入:提供博客主人的个人信息的录入、修改,日志的编写、修改、删除,网友对日志的评价的录入。2、数据查询功能:提供博主、网友对日志以及日志评价的查询。3、数据统计功能:对博客的日志与评价进行相关的统计。2.3功能模块博客系统数据库信息录入数据查询数据统计3、ER模型3.1ER模型的逻辑模型与物理模型图表1博客系统数据库逻辑模型图表2表格1博客系统数据库物理模型3.2转换为关系模式用户信息(账户编号、账户名、密码、用户昵称、用户邮箱、用户链接、用户注册时间、用户激活、用户状态、博客展示名字)用户拓展信息(账号编号、属性编号、属性关键词、属性值)日志分类(分类编号、分类名称)日志(文章编号、账户编号、分类编号、文章作者、文章标题、文章内容、文章编写时间、文章最后编写时间、评论总数)日志拓展信(文章拓展属性编号、账户编号、文章编号、分类编号、文章拓展息属性名称、文章拓展属性值)评论(评论编号、账户编号、文章编号、分类编号、评论作者、评论时间、评论修改时间、评论回复源)链接(链接编号、账户编号、链接地址、链接名称、链接图片、链接目标、链接描述、链接可访性)菜单(菜单编号、菜单名称、菜单值)4、表结构字段名数据类型是否主键是否为空备注字段含义user_IDbigint(20)PRINOTNULLauto_increment账户编号user_loginvarchar(60)INDNULL账户名user_passvarchar(64)NULL密码user_nicenamevarchar(50)INDNULL用户昵称user_emailvarchar(100)NULL用户邮箱user_urlvarchar(100)NULL用户链接user_registereddatetimeNULL用户注册时间user_activation_keyvarchar(60)NULL用户激活user_statusint(11)NULL用户状态display_namevarchar(250)NULL博客展示名字表格1用户信息表tb_users字段名数据类型是否主键是否为空备注字段含义umeta_idbigint(20)PRINULLauto_increm属性编号unsignedentuser_idbigint(20)unsignedFK-(tb_users)ID账户编号meta_keyvarchar(255)INDNULL属性关键词meta_valuelongtextINDNULL属性值表格2用户拓展信息tb_usermeta字段名数据类型是否主键是否为空备注字段含义term_idbigint(20)unsignedPRIauto_increment分类编号namevarchar(200)分类名称表格3日志分类tb_term字段名数据类型是否主键是否为空备注字段含义post_idbigint(20)unsignedPRI&INDPt4NOTNULLauto_increment文章编号user_idbigint(20)unsignedNOTNULLFK-wp_users.ID账户编号term_idNOTNULL分类编号post_datedatetimeINDPt3NULL文章编写时间post_date_gmtdatetimeNULL文章最后编辑时间post_contentlongtextNULL文章内容post_titletextNULL文章标题comment_countbigint(20)NULL评论总数表格4日志tb_post字段名数据类型是否主键是否为空备注字段含义meta_idbigint(20)unsignedPRINULLauto_increment文章拓展属性编号post_idbigint(20)unsignedIND0FK-wp_posts.ID文章编号term_idbigint(20)unsignedINDauto_increment分类编号meta_keyvarchar(255)INDNULL文章拓展属性名称meta_valuelongtextNULL文章拓展属性值表格5文章拓展属性tb_post_meta字段名数据类型是否主键是否为空备注字段含义comment_idbigint(20)unsignedPRINOTNULLauto_increment评论编号user_idbigint(20)unsignedINDNOTNULL账户编号post_idvarchar(20)NOTNULLFK-tb_posts.ID文章编号、term_idbigint(20)unsignedNOTNULLFK-wp_term_id分类编号、comment_authortinytextNULLFK-wp_users.ID评论作者comment_datedatetimeNOTNULL文章编写时间comment_date_gmtdatetimeIND&INDPt2NOTNULL评论修改时间comment_parentbigint(20)unsignedNOTNULLFK-wp_comments.ID评论回复源表格6评论表tb_comments字段名数据类型是否主键是否为空备注字段含义option_idbigint(20)unsignedPRIPt1NULLauto_increment菜单编号option_namevarchar(64)PRIPt3&IND菜单名称option_valuelongtext菜单值表格7菜单tb_options5、完整性设计5.1、主键约束主键约束就是通过建立唯一的索引保证指定列的实体的完整性,即每一个表中一列或多列的数值都是唯一的。而在本博客数据库里面,所有的表格都是设有主键,即他们都用主键约束功能。同时每个表格的主键列也把标识属性设为是,所以在插入新数据库是,SQLServer会主动对主键列惊醒唯一的赋值,不需要人为控制。5.2、外键约束外键约束主要是为了表中的一列或多列数据提供参展完整性,外键约束闲着插入到表中的被约束列的值必须就有被参展表中已存在。在本数据库中,具有外键约束的表有:tb_blogownersmetaID(FKtb_blogowners.user_ID)tb_postsID(FKtb_blogowners.user_ID)term_id(FKtb_term.term_id)tb_posts_metaID(FKtb_post.user_ID)post_id(FKtb_post.post_id)term_id(FKtb_post.term_id)tb_linksID(FKtb_blogowners.user_ID)tb_commentsID(FKtb_blogowners.user_ID)post_id(FKtb_post.post_id)term_id(FKtb_post.term_id)5.3、检查约束:在本博客系统中,在tb_blogowners表中,用户名,与密码分别都设置了检查约束:用户名不能以“[^_@#.]%'”字符为开头,密码不能少于三位。验证如下图:5.4、惟一约束:在本博客系统中,在tb_blogowners表中,用户名设置为唯一性,每个用户只有唯一的一个用户名。验证如下图:6数据库对象设计(20分)6.1触发器:触发条件:INSERT触发器名:tb_comment_postcount触发器用途:每当日志收到一条评论时,日志表中tb_post中的该日志的评论总数列:comment_count中的数据都会更新到最新的评论数量总数。CREATETRIGGERtb_comment_postcountONtb_commentsFORINSERTASBENGINSELECTCOUNT(comment_count)AStb_post.comment_count
本文标题:博客系统数据库设计模板
链接地址:https://www.777doc.com/doc-3590982 .html