Django博客开发:数据库设计分析(二)

++从网站需求分析及网站功能、页面设计可以知道,我们的Blog主要以文章内容为主。所以我们在设计数据库的时候,我们主要以文章信息为核心数据,然后逐步向外扩展相关联的数据信息。++

从如下图片中可以看到,文章有标题、分类、作者、浏览次数、发布时间、文章标签等信息。

mark

这其中,文章与分类的关系是一对多的关系,什么是一对多?就是一篇文章只能有一个分类,而一个分类里可以有多篇文章。文章与标签的关系是多对多的关系,多对多简单理解就是,一篇文章可以有多个标签,一个标签里同样可以有多篇文章。

我们将文章表命名为Article,通过前面的分析得出文章信息表Article的数据库结构如下:

表字段 字段类型 备注
id int类型,长度为11 主键,由系统自动生成
title CharField类型,长度为100 文章标题
category ForeignKey 外键,关联文章分类表
tags ManyToManyField 多对多,关联标签列表
body TextField 文章内容
user ForeignKey 外键,文章作者关联用户模型,系统自带的
views PositiveIntegerField 文章浏览数,正的整数,不能为负
tui ForeignKey 外键,关联推荐位表
created_time DateTimeField 文章发布时间

从文章表里,我们关联了一个分类表,我们把这个分类表命名为category,category表的数据库结构如下:

表字段 字段类型 备注
id int类型,长度为11 主键,由系统自动生成
name CharField类型,长度为30 分类名

文章关联的标签表,我们命名为tag,结构如下:

表字段 字段类型 备注
id int类型,长度为11 主键,由系统自动生成
name CharField类型,长度为30 标签名

文章关联的推荐位表,命名为tui,结构如下:

表字段 字段类型 备注
id int类型,长度为11 主键,由系统自动生成
name CharField类型,长度为30 标签名

除此之外,我们还有两个独立的表,和文章没有关联的,一个是幻灯图片的表,一个是友情链接的表。

幻灯图表,命名为banner,数据库结构如下:

表字段 字段类型 备注
id int类型,长度为11 主键,由系统自动生成
text_info CharField类型,长度为100 标题,图片文本信息
img ImageField类型 图片类型,保存传图片的路径
link_url URLField类型 图片链接的URL
is_active BooleanField布尔类型 有True 和False两个值,意思为是否激活

友情链接表命名为link,结构如下:

表字段 字段类型 备注
id int类型,长度为11 主键,由系统自动生成
name CharField类型,长度为70 友情链接的名称
linkurl URLField类型 友情链接的URL

至此,我们的数据库构造大致完成,后期如果还有其它的需求,我们可以在这基础上进行增加或者删除。下面我们就开始进行项目的创建与开发。