Echo的数据库表是如何设计的
飞天小牛肉
共 2059字,需浏览 5分钟
· 2021-02-28
Echo 这个项目数据库设计并不复杂,需要我们手动设计的只有四张表:
帖子表: discuss_post
评论表: comment
用户表: user
私信表: message
用户表
解释一下各个字段的含义:
id:用户的唯一标识 username:用户名 password:存储加盐加密后的密码 salt:随机生成的盐,用于密码的加盐加密 email:邮箱 type:用户类型 0 - 普通用户(用户注册默认是普通用户) 1 - 超级管理员:具有删除帖子、访问数据统计界面的权限 2 - 版主:具有置顶、加精帖子权限 status:用户状态 0 - 未激活(默认):用户点击注册后未点击邮箱中的激活链接进行验证,就会处于这个状态。未激活的用户同样无法正常使用某些功能比如发表帖子等 1 - 已激活:用户点击邮箱中的激活链接进行验证成功,就会将状态从未激活改成已激活 activation_code:激活码。用户点击注册后,随机生成一串激活码,则在本地环境下: http://localhost:8080/greatecommunity/activation/用户id/激活码
成为该用户的激活链接;在服务器上:http://1.15.127.74/activation/用户id/激活码
成为该用户的激活链接。点击该激活链接则激活用户。激活的逻辑也很简单,就是检查一下这个链接中的用户 id 和激活码是否和数据库中存储的一样。
帖子表
解释一下各个字段的含义:
id:帖子的唯一标识 user_id:发表该帖子的用户的 id title:帖子标题 content:帖子内容 type:帖子类型 0 - 普通帖子(默认) 1 - 置顶帖子 status:帖子状态 0 - 正常(默认) 1 - 精华:为帖子加精可以使其在热度计算中得到一定的加分 2 - 拉黑:管理员删除帖子后,就将这个帖子的状态设置为拉黑 create_time:帖子发表时间 comment_count:帖子的评论数量(因为会频繁的显示帖子的信息,比如创建时间、创建人、评论数量、点赞数量等,创建时间和创建人信息这张表中已经有了,所以此处再将评论数量存进来就好。可能会有同学会问啥不把点赞数量也缓存到帖子表中,因为点赞数量是存在 Redis 中的,获取点赞数量咱连数据库都不用进的,还费劲在这存一份干啥) score:热度 / 分数(用于按照热度排行帖子)
评论表
这个表应该是相对来说最复杂的一张了。因为不仅有评论(对帖子的评论),还有对评论的回复,都放在这一张表里面了。
id:评论/回复的唯一标识 user_id:用户 id(哪个用户发布了这个评论/回复) entity_type:实体类型(表示这条 comment 是针对哪个类型的,如果是针对帖子的,那么这个 comment 就是评论;如果是针对评论的,那么这条 comment 就是回复) entity_id:实体的 id(如果是对帖子的评论,就存储帖子的 id;如果是对评论的回复,就存储评论的 id;还有对回复的回复,存储的仍然是所属评论的 id。也就是说,「某个帖子下的所有评论,它们的 entity_id 都是这个帖子的 id。某条评论下的所有回复,它们的 entity_id 都是这条评论的 id」。) target_id:目标用户 id(表示这条评论/回复是针对哪个用户的。比如用户 admin 发了一个帖子,用户 master 评论了这个帖子,那么这里的 target_id 存储的就是用户 admin 的 id。) content:评论/回复的内容 status:评论/回复状态 0 - 正常(默认) 1 - 禁用(暂未使用) create_time:评论/回复发布时间
私信表
这张表不仅存储用户之间的私信,也存储系统通知,不同的是,系统通知的 from_id 特定为 1。用于发送系统通知的角色(用户) SYSTEM
已内置。
下面来看私信表的结构:
id:私信/系统通知的唯一标识 from_id:私信/系统通知的发送方 id to_id:私信/系统通知的接收方 id conversation_id:标识两个用户之间的对话。比如用户 id 112 给 113 发消息,或者 113 给 112 发消息,这两个会话的 conservation_id
都是112_113
。这样,通过这个字段我们就能查出来 112 和 113 之间的私信往来了。当然,这个字段是冗余的,我们可以通过 from_id 和 to_id 推演出来,但是有了这个字段方便后面的查询等操作content:私信/系统通知的内容 status:私信/系统通知的状态 0 - 未读(默认) 1 - 已读 2 - 删除(暂未使用) create_time:私信/系统通知的发送时间
评论
真高!比亚迪员工爆料比亚迪在越南的薪资水平:基本工资480万,全勤奖35万,交通补助20万,餐补110万,每周6天,每天10小时
上一篇:某大公司为逼迫员工离职,竟然把他的工位安排到厕所旁,没想到他直接开始记录领导的如厕时间,还发到公司大群...对此,你怎么看?--完--PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。全文完,感谢你的耐心阅读。如果你还想看到我的文章,请一定给本
开发者全社区
0
某大公司为逼迫员工离职,竟然把他的工位安排到厕所旁,没想到他直接开始记录领导的如厕时间,还发到公司大群...
上一篇:字节的跳动职级与薪资(2024年)我们与公司间的合作,宛如两艘船只在茫茫大海上相互依靠,共同抵御风浪,携手驶向成功的彼岸。然而,当航向开始产生分歧,或是波涛汹涌的风浪改变了我们的初衷,我们或许应当冷静地选择和平分手,而非在风雨中硬撑。最近,一位网友的遭遇引起了广大职场人的关注和热议。这位网友
开发者全社区
0
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
我看阿里的年终奖总算发了!
到4月底了,这两天看朋友圈,发现阿里的年终奖终于发了,问了问老同学,也从网上检索了不少信息,基本搞清楚了阿里今年的年终奖情况。近来来阿里一些集团对绩效等级做了较大的调整,以前的旧绩效系统中,绩效分为3.25、3.5、3.75、4和5五个等级,其中4和5是较高绩效等级,较少见。而且之前3.5绩效内部划
公子龙
0
CVPR 2024|大视觉模型的开山之作!无需任何语言数据即可打造大视觉模型
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出一种序列建模 (sequential modeling) 的方法,不使用任何语言数据,训练大视觉模型。>>加入极市CV技术交流群,走在计算机视觉的最前沿本文目录1 序列建模打造大视觉模型(来自 U
极市平台
1
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
字节的跳动职级与薪资(2024年)
上一篇:阿里公布年终奖,P7, 3.5+,22W年终奖,还有35W长期现金激励,真香字节跳动自2012年3月成立以来,已经迅速成长为一个全球性的科技公司。其产品和服务已经遍布全球150多个国家与地区,并且支持超过75种不同的语言。在字节跳动的官方网站上,列出了一系列引人注目的产品和服务,包括但不限于
开发者全社区
0
偷偷告诉你如何一台电脑开多个微信!
大家好,我是轩辕。前几天在粉丝群里,有人问我是怎么在一台电脑上同时登录两个微信的?正好之前写过一篇文章,分析过原理,分享给没看过的小伙伴学习一下。手机端多开微信估计很多人都知道,像华为、小米等手机系统都对此做了支持,不过在运行Windows系统的电脑上怎么启动两个微信呢?其实很简单,你只需要写一个批
编程技术宇宙
0