作者:斯高一耐 | 来源:互联网 | 2023-05-17 21:42
系统分析作为一个微型博客系统,不需要像微博或者csdn这样的大网站每天承受数以N万计的用户访问,也不需要展示丰富繁杂的内容,所以我们就按最简来进行数据库的设计,这样相对而言系统承载要小
系统分析
- 作为一个微型博客系统,不需要像微博或者csdn这样的大网站每天承受数以N万计的用户访问,也不需要展示丰富繁杂的内容,所以我们就按最简来进行数据库的设计,这样相对而言系统承载要小的很多很多,数据库条目关系以及储存占用也很小,也便于基础学习者理解。
- 服务器和数据库我们一般都会部署在linux平台上,如果本地开发练习其实并不麻烦,如果想把成果放到网上去,那么我们可以租用一部云主机,在云主机上搭建一个真实的可访问系统,这些需要大家自己去探索学习。
- 数据库的话我的示例之中一般都会使用PgSql,可以参考前面的相关文章为应用配置稳定数据库
硬件环境并不作为此次讨论的重点,所以不多说,当然我知道的也有限,接下来我们着重讨论数据库的分析部分
数据库分析
此次示例中我本人既作为一个创建者也作为一个使用者,所以所有内容都是个人亲身试炼所得,不足之处愿受教于高人。因为是一次开发演练,所以我们不关心博客系统本身的市场需求,只讨论在这个系统之中数据库如何根据需求去进行设计。
- 数据库需要存储与访问的数据对象有哪些
- 用户为核心,所以用户对象必须要有一张数据表,字段包含包含一些常用信息,比如用户ID、昵称、登录名、密码,为了不让一张表的数据过于繁杂和便于查询,我们又设计出了一张用户信息表,保存一些不常用的用户信息如生日、爱好、教育信息等;
- 内容为主体,所以文章对象要有一张数据表,字段包含用户ID、文章分类、文章标题、关键字等;
- 文章分类表,字段类别、类别名称等’,
- 好友表,用来存储互加好友的两个人之间的关系,字段包含用户id和好友id以及自增的主键等;
- 用户关注表,字段包含用户id以及被关注人id和自增的主键;
- 私信表, 字段包含自增私信ID,发信者ID,收信者ID, 私信内容;
- 系统通知表,字段包含系统通知ID,接受者ID,通知内容,自增通知内容id;
- 评论表,字段包含评论自增ID号,收到评论的用户ID,评论内容的ID,评论内容,评论者ID,评论时间等;
- 评论回复表,字段包含回复自增ID号,收到回复的用户ID,回复评论的ID,回复内容,回复者ID,回复时间,回复等级等;
- 留言表,字段包含留言自增ID号,收到留言的用户ID,留言内容的ID,留言内容,留言者ID,留言时间等;
- 留言回复表,字段包含回复自增ID号,收到回复的用户ID,回复留言的ID,回复内容,回复者ID,回复时间,回复等级等;
- 数据对象之间的关系
- 与用户表关联的表:所有其他的表都与用户有联系,要么外键约束,要么有字段联系
- 文章表与文章分列表和文章评论表存在外键约束
- 评论表与回复表以及留言表和留言回复表都有外键约束
关于数据的表结构关系我会在下一篇的逻辑设计中细细去讲解