Django博客开发教程:数据库设计分析

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

从这篇文章http://demo.django.cn/show-10.html可以看到,文章有标题、分类、作者、浏览次数、发布时间、文章标签等信息。

1111.jpg

2222.jpg

这其中,文章与分类的关系是一对多的关系,什么是一对多?就是一篇文章只能有一个分类,而一个分类里可以有多篇文章。文章与标签的关系是多对多的关系,多对多简单理解就是,一篇文章可以有多个标签,一个标签里同样可以有多篇文章。关于一对多、多对多,大家可以查看这篇文章:多个数据模型间的关系

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

表字段
字段类型
备注
id
int类型,长度为11
主键,由系统自动生成
titleCharField类型,长度为100
文章标题
categoryForeignKey外键,关联文章分类表
tags
ManyToManyField多对多,关联标签列表
bodyTextField文章内容
userForeignKey外键,文章作者关联用户模型,系统自带的
viewsPositiveIntegerField

文章浏览数,正的整数,不能为负

tuiForeignKey

外键,关联推荐位表

created_timeDateTimeField

文章发布时间

从文章表里,我们关联了一个分类表,我们把这个分类表命名为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_infoCharField类型,长度为100标题,图片文本信息
img
ImageField类型
图片类型,保存传图片的路径
link_urlURLField类型
图片链接的URL
is_activeBooleanField布尔类型
有True 和False两个值,意思为是否激活

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

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

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


文章评论 0