个人博客(一)之表结构设计
对于一个程序员来说,没有一个个人的博客是不能称为程序员的。程序员要养成一个经常数学博客的习惯,这个是一定要的,可以写下自己的反思,自己的成果,这样不仅可以帮助自己也可以帮助其他人学习。
思考了一下,我在这边简单的列出了一些字段,适合表结构的开发,自己做博客也没有UI设计,我个人是喜欢先设计好,把表结构逻辑都搞好,然后再去做静态页面,写js(其实就是前端技术不咋地)。这样我可以在设计的时候思考很多东西,如果到时候前端需要更多的东西就只能去修改数据库。
接下来展示表的设计
1. 文章信息表(article_info)文章的基础字段
id(主键),create_by(创建人),create_date(创建日期),update_by(更新人),update_date(更新日期),version(版本号,乐观锁),is_deleted(是否删除)这几个字段是每个表都有的,一方面我们需要去详细的记录信息,另一方面如果我们的数据出现了错误,我们可以第一时间去查找错误。比如某个人往数据库里面修改了数据,导致数据出现了问题,这时候我们不知道谁删除的就很尴尬了,还有就是避免用户的手误,安全等等原因,我们的删除最好是逻辑删除,不物理删除。逻辑删除也方便我们以后统计数据。
id(主键),create_by(创建人),create_date(创建日期),update_by(更新人),update_date(更新日期),version(版本号,乐观锁),is_deleted(是否删除),title(标题),type(文章分类,可以是springBoot,java等),is_top(是否置顶),author(作者),original_link(原始链接),is_original(是否原创),is_private(是否是私密)
2. 文章内容表(article_conetnt) 文章的文本信息
id,create_by,create_date,update_by,update_date,version,is_deleted,content(text)(内容),article_info_id(文章信息id),
这里是和文章信息分开来,因为阿里开发规范中说,如果文本类型为text类型,建议单独分开一张表出来,当然这个一张表也是可以的,毕竟数据量较小。如果放在一起为影响索引效率。
3. 文章评论或留言表(article_comment)对于文章的评论或者留言
id,create_by,create_date,update_by,update_date,version,is_deleted,content(内容),name,email,article_info_id(如果是评论需要保存信息id),type(1是评论,2是留言)
这里主要包括两个方面,一是对于文章的评论,而是用户对于整个系统的留言,刚开始是想书写两个表,主要是结构相同,评论比留言多了一个article_info_id,索性我给加个type来区分,这样方便日后的统计。如果不加type的话,评论你可以有article_info_id,留言可能就没有,如果去统计数据,去数据库判断article_info_id==null,我感觉这样的形式不好,也不建议这样去做。
4. 文章图片表(article_picture)文章的图片
id,create_by,create_date,update_by,update_date,version,is_deleted,name,picture_url,article_info_id
因为很大程度上,给文章来一个头图会显得更好看,这样的话,就会有图片。这里单独设计出来一个表的原因是,怕一个文章会有多个图片,这样就不能在article_info中添加一个url,就不能满足需求。这样支持可扩充,也方便去查看。
5. 文章类型表(article_type)
id,create_by,create_date,update_by,update_date,version,is_deleted,code,value,name,remark(备注)
这个对应在article_info中的type字段,我们把文章类型新建一个表,这样可以从数据库中获取,不能设计为固定的(java,spring,springBoot,mysql等等),这个.我们需要在后端去管理的所以我们给设计为可操作性。
6. 系统图片表(system_picture)首页的图片显示
id,create_by,create_date,update_by,update_date,version,is_deleted,type,name,picture_url,type,code
这个是初始化页面的图片,可能是轮播图,我们要设计成可以控制的,到时候要是换图片,我们可以在后台修改。
现在这些只是在页面上显示的数据,还可以加一些内容包括 浏览表,日志表等等,这些都是要完善的。后面还要做一个后台管理页面,用于编辑和发布文章等等,这只是一个初级想法,自己要去设计表结构了,设计好后页面在下面供大家参考!希望可以帮到大家