博客系统项目搭建准备
Posted 别人放弃,我依旧坚持
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博客系统项目搭建准备相关的知识,希望对你有一定的参考价值。
一.项目背景
1999年初,由于 Cameron与Jesse共同维护的博客站点列表既有趣又易于阅读,吸引了很多人的眼球。在这种情况下,Peter Merholz宣称:“这个新鲜事物必将引起大多数人的注意。作为未来的一个常用词语,web-blog将不可避免地被简称为blog,而那些编写网络日志的人,也就顺理成章地成为blogger“博客”。这代表着博客被正式命名。
8月份,Pyra发布了Blogger网站,Groksoup也投入运营,使用这些企业所提供的简单的基于互联网的工具,博客站点的数量终于出现了一种爆炸性增长。1999年末,软件研发商Dave Winer向大家推荐EditTh isPage网站,JefA .Ca mpbell发布了Velocinews网站。所有的这些服务都是免费的,他们的目的也很明确:让更多的人成为博客,来网上发表意见和见解。
随着Blogging快速扩张,它的目的与最初的浏览网页心得已相去甚远。目前网络上数以千计的 Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)中。目前,BSP商家风 起云涌,已有数十家大型博客站点。目前,国内优秀的中文博客网有:新浪博客,搜狐博客,中国博客网,腾讯博客,博客中国等。
二.博客系统功能分析
1.系统提供非注册用户注册、浏览其他已注册用户发布的日志、日志分类信息、图片详情、相册信息,查看日志评论等功能。
2.除了提供非注册用户的所有功能外,系统向已注册用户提供后台管理功能,注册用户可以浏览管理个人发布的日志、浏览和管理个人相册、浏览和管理评论、浏览和管理个人信息、浏览和管理常用链接、浏览和修改个人登录密码、安全退出系统等功能。
3.系统具备日志可视化文本编辑功能,使用百度编辑器对日志内容进行录入,可以方便的按照自己的布局方式展示日志内容。
三.博客系统架构
1.功能列表
2.博客系统架构
2.1 mvc架构
MVC框架是由Model模型(JavaBean),View视图(Jsp) 和 Controller控制器(Servlet)构成:
(1).Model:承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称为数据承载Bean,一类称为业务处理Bean。所谓数据承载Bean是指实体类,专门承载业务数据的。而业务处理Bean则是指Service或Dao对象,专门用于处理用户提交请求的。
(2).View:为用户提供使用界面,与用户直接进行交互。
(3).Controller:用于将用户请求转发给相应的Model进行处理,并将处理Model的计算结果向用户提供相应响应。
2.2 ssm框架
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。
(1).SpringMVC:作为View层的实现者,完成用户的请求接收功能。SpringMVC的Controller作为整个应用的控制器,完成用户请求的转发及对用户的响应
(2).MyBatis:作为 Dao层的实现者,完成对数据库的增、删、改、查功能。
(3).Spring:以整个应用大管家的身份出现。整个应用中所有的Bean的生命周期行为,均由Spring来管理。即整个应用中所有对象的创建、初始化、销毁,及对象间关联关系的维护,均由Spring进行管理。
四.数据库设计
1.设计需求及要求
根据需求,共设计了7张表,分别为t_user(用户表),t_album(相册表) ,t_category(日志分类表),t_comment(日志评论表),t_journal(日志表),t_link(常用链接表),t_photo(图片详情表)这7张表的设计严格按照数据库的规范,尽可能符合符合以下要求。
(1)数据的完整性:保证数据库中存取数据准确、完整、数据更新的一致性。
(2)数据的结构化:设计层次分明,分布合理。在满足系统所需功能的前提下,在设计时可以考虑基本表的个数越少越好,主键的个数越少越好,字段个数越少越好。
(3)减少数据冗余:一方面数据库系统应该尽量减少数据冗余,节省存储空间。另一方面,还要考虑适当的冗余,以提高系统的运行 速度和后台逻辑开发速度。
2.数据库架构
3.数据库表结构
(1)t_user 用户表
CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT \'用户编号\', `username` varchar(64) NOT NULL COMMENT \'用户名\', `password` varchar(128) NOT NULL COMMENT \'密码\', `nickname` varchar(255) DEFAULT NULL COMMENT \'昵称\', `email` varchar(64) DEFAULT NULL COMMENT \'注册邮箱\', `sign` varchar(255) DEFAULT NULL COMMENT \'个性签名\', `name` varchar(36) DEFAULT NULL COMMENT \'真实姓名\', `sex` varchar(12) DEFAULT NULL COMMENT \'性别\', `phonenumber` varchar(36) DEFAULT NULL COMMENT \'手机号码\', `address` varchar(64) DEFAULT NULL COMMENT \'家庭住址\', `upload` varchar(64) DEFAULT NULL COMMENT \'头像\', `registime` date DEFAULT NULL COMMENT \'注册时间\', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
(2)t_journal 日志表
CREATE TABLE `t_journal` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT \'日志id\', `title` varchar(128) DEFAULT NULL COMMENT \'日志标题\', `categoryid` int(11) DEFAULT NULL COMMENT \'日志所属日志分类id\', `content` text COMMENT \'日志内容\', `createtime` date DEFAULT NULL COMMENT \'日志创建时间\', `userid` int(11) DEFAULT NULL COMMENT \'日志所属用户id\', `readtimes` int(11) DEFAULT NULL COMMENT \'日志阅读次数\', `commentime` int(11) DEFAULT NULL COMMENT \'日志评论次数\', `abstract` varchar(255) DEFAULT NULL COMMENT \'日志摘要\', PRIMARY KEY (`id`), KEY `userid` (`userid`), KEY `categoryid` (`categoryid`), CONSTRAINT `t_journal_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`), CONSTRAINT `t_journal_ibfk_2` FOREIGN KEY (`categoryid`) REFERENCES `t_category` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(3)t_category 日志分类表
CREATE TABLE `t_category` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT \'日志分类id\', `categoryname` varchar(64) DEFAULT NULL COMMENT \'日志分类名称\', `userid` int(11) DEFAULT NULL COMMENT \'日志分类所属用户id\', `count` int(11) DEFAULT NULL COMMENT \'日志分类下日志个数\', PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `t_category_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(4)t_album 相册表,分类管理图片
CREATE TABLE `t_album` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT \'相册id\', `userid` int(11) DEFAULT NULL COMMENT \'相册所属的用户id\', `count` int(11) DEFAULT NULL COMMENT \'该相册下照片的个数\', `name` varchar(255) DEFAULT NULL COMMENT \'相册名称\', `createtime` date DEFAULT NULL COMMENT \'创建相册的时间\', `describe` text COMMENT \'相册描述\', PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `t_album_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(5)t_comment 评论表
CREATE TABLE `t_comment` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT \'评论id\', `content` text COMMENT \'评论内容\', `userid` int(11) DEFAULT NULL COMMENT \'发表评论用户id\', `journalid` int(11) DEFAULT NULL COMMENT \'发表评论所属日志分类id\', `createtime` date DEFAULT NULL COMMENT \'发表评论的时间\', `state` int(11) DEFAULT NULL COMMENT \'评论状态 0审核通过 1审核不通过\', PRIMARY KEY (`id`), KEY `userid` (`userid`), KEY `journalid` (`journalid`), CONSTRAINT `t_comment_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`), CONSTRAINT `t_comment_ibfk_2` FOREIGN KEY (`journalid`) REFERENCES `t_journal` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(6)t_photo 图片详情表
CREATE TABLE `t_photo` ( `id` int(11) NOT NULL COMMENT \'图片id\', `describe` varchar(255) DEFAULT NULL COMMENT \'图片描述\', `path` varchar(255) DEFAULT NULL COMMENT \'图片访问地址\', `createtime` date DEFAULT NULL COMMENT \'图片上传时间\', `userid` int(11) DEFAULT NULL COMMENT \'图片所属用户id\', `albumid` int(11) DEFAULT NULL COMMENT \'图片所属相册id\', PRIMARY KEY (`id`), KEY `userid` (`userid`), KEY `albumid` (`albumid`), CONSTRAINT `t_photo_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`), CONSTRAINT `t_photo_ibfk_2` FOREIGN KEY (`albumid`) REFERENCES `t_album` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(7)t_link 常用链接表
CREATE TABLE `t_link` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT \'常用链接id\', `name` varchar(128) DEFAULT NULL COMMENT \'常用链接名称\', `url` varchar(128) DEFAULT NULL COMMENT \'常用链接url地址\', `userid` int(11) DEFAULT NULL COMMENT \'常用链接所属用户\', PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `t_link_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
以上是关于博客系统项目搭建准备的主要内容,如果未能解决你的问题,请参考以下文章
基于Hexo的博客搭建——虚拟机中linux(deepin)系统上安装配置Git和Node.js,为部署个人博客做前期准备