根据上一章的需求分析, 我们可以肯定我们的博客应用程序需要User,Post,Comment和Tag这几张数据库表:
- User表用来储存用户的信息,包括用户名和密码
- Post表用来存放文章的信息,它包含下列几个字段
- title:必须,文章的标题
- content:必须,文章的内容,使用markdown format
- status:必须,文章的状态,有下列几种状态可以选择
- draft:草稿,公众不可见
- published:发布了的文章,公众可见
- archived:文章过期,公众不可见
- tags:可选项,文章标签,用逗号分开
- Comment 用来存放文章的评论信息,每个评论都有相关联的文章,它主要包含以下几个字段:
- name:必须, 作者名字
- email:必须,作者邮箱
- website:可选, 作者网址
- content: 必须, 评论内容,使用Markdown format
- status:必须, 评论的状态,用来表示评论通过或未通过审核
- Tag表贮存文章的标签信息。一篇文章可以有很多标签,一个标签也可以被附加到多个文章。Tag表主要是用来为云标签扩展服务,计算标签的使用率。
下面的ER图向我们展示了数据表的结构和之间的关系. 我们可以看到Post和Tag是多对多的关系。可以可以借助PostTag表,是其分解成2个一对多的关系。
Entity-Relation Diagram of the Blog Database
我们可以在Blog Demo里找到完整的SQL脚本文件。在我们的Yii安装中,文件名为:/wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql
.
我们把整个开发过程分解问以下几个里程碑:
- 里程碑1:建立博客系统的原型, 它将包含大部分我们需要的功能。
- 里程碑2:完成文章管理。包括创建,列表,显示,更新和删除。
- 里程碑3:完成评论管理。包括评论的创建,列表,显示,更新和删除。
- 里程碑4:实行扩展功能。 包括用户菜单,登录,云标签和最近评论扩展。
- 里程碑5:作最后的测试和部署。