创新实训(3)——数据库的初步设计

在分析需求,商量系统具体的功能之后,先初步设计了一个数据库,用来配合系统功能的实现

数据库概念设计

(1)博客实体
我们需要提前准备一个自建博客的列表,然后存储博客的rss链接,在之后会设定定时任务,去定时爬取这个博客列表之中更新的文章。
(2)博客文章实体
从rss抽取到的文章信息需要在清洗,分类,打标签之后,存放到博客文章实体中,实现最主要的浏览功能。
(3)标签实体
系统需要定义一系列的标签,在抽取到文章后,将文章与系统自定义的标签相对应,存储起来,然后才能根据博客的标签进行博客的推荐。
(4)分类实体
系统需要定义一系列的分类,在抽取到文章,定义标签之后,需要给博客的文章进行归类,然后就可以进行博客的分类浏览了
(5)用户实体
用户可以登录系统,浏览系统内的博客文章,系统会记录用户的浏览信息,然后针对不同标签,不同分类的浏览信息,进行博客内容的推荐已经用户画像的构建。

其中博客与博客文章是一对多的关系
博客文章与分类是多对多的关系
博客文章与标签是多对多的关系
用户对博客的浏览也是多对多的关系

所以形成以下ER图:
在这里插入图片描述
说明:这个是初步的数据库设计,如果能将以上表显示的全部功能做完,可以考虑添加博客文章的评论系统。会在添加一个实体,已经用户博客文章 评论之间的关系。到时候在进行ER图的修改。

数据库逻辑模型设计

(1)博客表
在这里插入图片描述
(2)博客文章表
在这里插入图片描述
(3)标签表
在这里插入图片描述
(4)分类表
在这里插入图片描述
(5)用户表
在这里插入图片描述
(6)博客文章标签表
在这里插入图片描述

(7)博客文章所属分类表
在这里插入图片描述
(8)用户浏览记录表
在这里插入图片描述

数据库物理结构设计

  1. 由于要根据用户的user_id在用户浏览记录表中查询用户已经读过的文章,所以在user_browsing_history的user_id上建立索引
  2. 由于要根据标签在博客标签表中查询博客,所以要在article_tag表的tag_id上建立索引
  3. 由于要根据分类在博客分类表中查询博客,所以要在article_category表的category_id上建立索引

猜你喜欢

转载自blog.csdn.net/baidu_41871794/article/details/106629259
今日推荐