当前位置:文档之家› 博客信息管理系统设计

博客信息管理系统设计

数据库课程设计
题目
博客信息管理系统
班级:
学号:
姓名:
提交日期:2010 年 3 月13日
目录
1.项目背景 (3)
2.需求分析 (3)
2.2功能划分 (3)
2.3功能模块 (3)
3、ER模型 (4)
3.1 ER模型的逻辑模型与物理模型 (4)
3.2转换为关系模式 (5)
4、表结构 (6)
5、完整性设计 (9)
5.1、主键约束 (9)
5.2、外键约束 (9)
5.3、检查约束: (10)
5.4、惟一约束: (10)
6 数据库对象设计(20分) (11)
6.1触发器: (11)
6.2 视图 (11)
7 数据库实现 (11)
7.1建立数据库 (11)
7.2 初始化所有表: (15)
7.3 实现查询功能 (15)
1.项目背景
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.1 ER模型的逻辑模型与物理模型
图表 1 博客系统数据库逻辑模型
图表 2 表格 1 博客系统数据库物理模型
3.2转换为关系模式
用户信息(账户编号、账户名、密码、用户昵称、用户邮箱、用户链接、用户注册时间、用户激活、用户状态、博客展示名字)
(账号编号、属性编号、属性关键词、属性值)
用户拓展信

日志分类(分类编号、分类名称)
日志(文章编号、账户编号、分类编号、文章作者、文章标题、文章内容、文章编写时间、文章最后编写时间、评论总数)
日志拓展信(文章拓展属性编号、账户编号、文章编号、分类编号、文章拓展
4、表结构
5、完整性设计
5.1、主键约束
主键约束就是通过建立唯一的索引保证指定列的实体的完整性,即每一个表中一列或多列的数值都是唯一的。

而在本博客数据库里面,所有的表格都是设有主键,即他们都用主键约束功能。

同时每个表格的主键列也把标识属性设为是,所以在插入新数据库是,SQL Server会主动对主键列惊醒唯一的赋值,不需要人为控制。

5.2、外键约束
外键约束主要是为了表中的一列或多列数据提供参展完整性,外键约束闲着插入到表中的被约束列的值必须就有被参展表中已存在。

在本数据库中,具有外键约束的表有:
term_id(FK→tb_term.term_id)
tb_posts_meta ID(FK→tb_er_ID)
post_id(FK→tb_post.post_id)
term_id(FK→tb_post.term_id)
tb_links ID(FK→tb_er_ID)
tb_comments ID(FK→tb_er_ID)
post_id(FK→tb_post.post_id)
term_id(FK→tb_post.term_id)
5.3、检查约束:
在本博客系统中,在tb_blogowners表中,用户名,与密码分别都设置了检查约束:用户名不能以“[^_@#.]%'”字符为开头,密码不能少于三位。

验证如下图:
5.4、惟一约束:
在本博客系统中,在tb_blogowners表中,用户名设置为唯一性,每个用户只有唯一的一个用户名。

验证如下图:
6 数据库对象设计(20分)
6.1触发器:
触发条件:INSERT
触发器名:tb_comment_postcount
触发器用途:每当日志收到一条评论时,日志表中tb_post中的该日志的评论总数列:comment_count中的数据都会更新到最新的评论数量总数。

CREATE TRIGGER tb_comment_postcount ON tb_comments
FOR INSERT AS
BENGIN
SELECT COUNT(comment_count) AS tb_ment_count
FROM tb_comments
END
6.2 视图
视图名:BlogView
用途:查看博主的所有日志标题和编写时间以及评论总数
CREATE VIEW BlogView AS
SELECT post_title, post_date, comment_count
FROM tb_posts
7 数据库实现
7.1建立数据库
通过用erwin把本系统建立在SQL Server2000数据库上。

如下图
7.2 初始化所有表:
输入以下语句:
INSERT INTO tb_blogowners
(user_login, user_pass, user_nicename, user_email, user_url, user_registered,
user_ativtion_key, user_status, display_name)
values ('tom', '123', 'xiaoming', '***************','', 2010/3/4, 'yes', 'good', 'tom home')
INSERT INTO tb_blogownersmeta
(ID,meta_key, meta_valu)
values (1000, '性别','男')
INSERT INTO tb_posts
(ID, post_author, post_title, post_content, post_date, post_date_gmt, term_id,
comment_count)
V ALUES (1000, 'tom', 'story', 'a man s story ', 2010/3/15, 2010/3/16, 1000, 10) INSERT INTO tb_term
(term_name)
V ALUES('日记')
INSERT INTO tb_posts_meta
(ID, post_id, meta_key, meta_value, term_id)
V ALUES (1000, 1001, ' 写日志时的心情', ' 开心', 1000)
INSERT INTO tb_comments
(ID, post_id, comment_author, comment_date, comment_date_gmt, term_id)
V ALUES (1000, 1001, 'tom', 2010 / 3 / 15, 2010 / 3 / 16, 1000)
INSERT INTO tb_links
(ID, link_url, link_name)
V ALUES (1000, '', '腾讯网')
7.3 实现查询功能
1、查询指定日期的所有日志
如:查询2010年3月15日的日志:
SELECT * FROM tb_posts where post_date =2010/3/15
2、查询指定日志的所有评论
如:查询tom的所有日志
SELECT * FROM tb_posts where post_author = tom。

相关主题