全栈全平台开源项目 CodeRiver 数据库设计文档

CodeRiver 是一个全栈全平台的开源项目协作平台,涵盖了多种主流技术栈。本文档介绍了其数据库设计,包括用户模块、项目模块的数据表,如 user_info、project_info 等,并详细阐述了数据表的字段和设计考虑,如采用 INT 类型的 id 和时间戳格式。此外,还提及了项目的开源状态和社区参与方式。
摘要由CSDN通过智能技术生成

前言

CodeRiver 是一个免费的项目协作平台,愿景是打通 IT 产业上下游,无论你是产品经理、设计师、程序员或是测试,还是其他行业人员,只要有好的创意、想法,都可以来 CodeRiver 免费发布项目,召集志同道合的队友一起将梦想变为现实!

CodeRiver 本身还是一个大型开源项目,致力于打造全栈全平台企业级精品开源项目。涵盖了 React、Vue、Angular、小程序、ReactNative、Android、Flutter、Java、Node 等几乎所有主流技术栈,主打代码质量。

目前已经有近 100 名开发者参与,每个技术栈都有多位经验丰富的大佬坐镇,更有两位架构师指导项目架构。无论你想学什么语言处于什么技术水平,相信都能在这里学有所获。

通过 高质量源码 + 博客 + 视频,帮助每一位开发者快速成长。

项目地址:https://github.com/coderiver-org

数据库关系图

产品的第一版功能相对简单,主要模块只有用户模块、项目模块,后期版本中将丰富更多功能,欢迎关注。

数据库关系图如下:

数据表详解

所有的 id 都采用了Long (bigint) 类型,相比于字符串,Long 在查询比对方面有很大优势。

时间格式,除了只需时分的 time 类型,其他时间均存成时间戳,所以类型也是 Long (bigint)

详细的数据表文档如下:

user_info

用户表,存储用户的基本信息。但登录相关的信息单独抽出来了一张新表:user_login ,便于后期扩展。

字段类型not null默认值备注
user_idbigint(64)not null用户主键id
usernamevarchar(255)not null用户名/昵称
passwordvarchar(255)not null加密后的密码
genderint(11)0性别,0未知,1男,2女
avatarvarchar(255)头像
citybigint(64)城市编码
role_idbigint(64)角色id
experience_idbigint(64)工作经验id
workday_start_timetime工作日空闲开始时间
workday_end_timetime工作日空闲结束时间
weekend_start_timetime周末空闲开始时间
weekend_end_timetime周末空闲结束时间
influenceint(11)影响力,由多个数据动态计算而来
introducevarchar(512)个人简介
statusint(11)not null1账户状态。1正常,2冻结,3注销
create_timebigint(64)创建时间
update_timebigint(64)更新时间

user_login

用户登录表,存储登录的各种账号。每种账户都有一个 active 字段,为了标记这种登录方式是否可用。

例如用户通过邮箱注册了一个账号,并跟微信绑定了,此时用微信或者邮箱均可登录,微信和邮箱的 active 状态值都是1。某天用户把微信解绑了,只能通过邮箱登录,此时微信的 active 状态值是 2 表示不可用,邮箱的 active 状态值是 1 表示可用。

字段类型not null默认值备注
idbigint(64)not null主键id
user_idbigint(64)not null用户id
emailvarchar(64)邮箱
email_activeint(11)0状态,0不可用,1可用
phonevarchar(64)手机号
phone_activeint(11)0状态,0不可用,1可用
wechat_idvarchar(255)微信id
wechat_activeint(11)0状态,0不可用,1可用
sina_idvarchar(255)新浪id
sina_activeint(11)0状态,0不可用,1可用
github_idvarchar(255)github id
github_activeint(11)0状态,0不可用,1可用
create_timebigint(64)创建时间
update_timebigint(64)更新时间

user_role

用户角色表。存储用户角色分类:

产品经理、设计师、前端工程师、移动端工程师、小程序、游戏工程师、后端工程师、测试、DBA工程师、运维工程师、其他。

字段类型not null默认值备注
idbigint(64)not null角色id
namevarchar(64)角色名

user_experience

用户工作经验表。存储工作经验分类:

在校生,0年,1-2年,3-5年,5-8年,8-10年,10年+

字段类型not null默认值备注
idbigint(64)not null经验id
namevarchar(64)经验名

work_experience

工作经历表。存储个人简介中的工作经历,每人的工作经历可能有多个。

字段类型not null默认值备注
idbigint(64)not null主键id
user_idbigint(64)not null用户id
company_namevarchar(64)公司名
positionvarchar(32)职位
commentvarchar(512)备注
start_datebigint(64)开始日期(格式:2018-09)
end_datebigint(64)结束日期(格式:2018-09)
statusint(11)not null1状态。1正常,2删除
create_timebigint(64)创建时间
update_timebigint(64)更新时间

education_experience

教育经历表。存储个人简介中的教育经历,每人的教育经历可能有多个。

字段类型not null默认值备注
idbigint(64)not null主键id
user_idbigint(64)not null用户id
school_namevarchar(64)学校名
majorvarchar(32)专业
degreevarchar(32)学位
commentvarchar(512)备注说明
start_datebigint(64)开始日期(格式:2018-09)
end_datebigint(64)结束日期(格式:2018-09)
statusint(11)1状态。1正常,2删除
create_timebigint(64)创建时间
update_timebigint(64)更新时间

user_like

用户点赞表。

字段类型not null默认值备注
idbigint(64)not null主键id
liked_user_idbigint(64)not null被点赞的⽤用户id
liked_post_idbigint(64)not null点赞的⽤用户id
statusint(11)not null1点赞状态,1 点赞,2取消
create_timebigint(64)创建时间
update_timebigint(64)修改时间

project_info

项目信息表。存储项目的基本信息。

字段类型not null默认值备注
project_idbigint(64)not null项目id
project_namevarchar(255)项目名字
project_avatarvarchar(255)项目封⾯面
project_difficultyfloat项目难度
category_idbigint(64)not null项⽬类型id
project_statusint(11)0项目状态, 0招募中,1 进行中,2已完成,3失败,4延期,5删除
project_introducevarchar(512)项目简介
project_creator_idbigint(64)not null项⽬创建者id
team_idbigint(64)项目所属团队id
project_start_datebigint(64)项目开始时间,格式:2018-10-01
project_end_datebigint(64)项⽬结束时间,格式:2018-10-01
project_delay_datebigint(64)项⽬延迟的⽇期,格式:2018-10-01
delay_countint(11)项⽬目延期次数。最多三次每次最多一个⽉
create_timebigint(64)创建时间
update_timebigint(64)更新时间

project_category

项目类型表。如电商、社交、教育等。

字段类型not null默认值备注
idbigint(64)not null项⽬目类型id
namevarchar(255)类⽬目类型名称

project_picture

项目图片表。存放项目截图。项目与图片是一对多的关系。

字段类型not null默认值备注
idbigint(64)not null主键id
project_idbigint(64)not null项⽬id
picture_urlvarchar(255)not null图⽚地址

project_like_user

项目点赞表。存储项目点赞的具体信息。

字段类型not null默认值备注
idbigint(64)not null主键id
project_idbigint(64)not null项目id
user_idbigint(64)not null点赞的用户id
statusint(11)not null0点赞状态,0 取消点赞,1点赞
create_timebigint(64)创建时间
update_timebigint(64)更新时间

team_application

组队申请表。有四种业务逻辑:申请加入项目,申请加入团队,邀请加入项目,邀请加入团队。

字段类型not null默认值备注
idbigint(64)not null主键id
project_idbigint(64)项目id
team_idbigint(64)团队id
target_user_idbigint(64)not null目标用户id。如果是用户主动申请,就是申请者id;如果是被邀请,就是被邀请者id。
creator_user_idbigint(64)not null申请创建者id。如果是用户主动申请,target_user_id 和 creator_user_id 都是该申请者id;如果是被邀请,creator_user_id 是邀请者id。
role_id_applybigint(64)not null申请在本项目中的角色id
workday_start_timetime工作日空闲开始时间
workday_end_timetime工作日空闲结束时间
weekend_start_timetime周末空闲开始时间
weekend_end_timetime周末空闲结束时间
commentsvarchar(512)备注消息
statusint(11)1状态。1待审核,2通过,3驳回,4撤回,5删除
create_timebigint(64)创建时间
update_timebigint(64)更新时间

user_project_relation

用户与项目的对应关系表。关系是多对多。

字段类型not null默认值备注
idbigint(64)not null主键id
project_idbigint(64)not null项目id
role_id_projectbigint(64)not null用户在本项目的角色id
user_idbigint(64)not null用户id
statusint(11)0状态。0未匹配,1已匹配
create_timebigint(64)创建时间
update_timebigint(64)更新时间

team_info

团队信息表

字段类型not null默认值备注
team_idbigint(64)not null团队主键id
team_namevarchar(255)团队名称
team_avatarvarchar(255)团队logo
team_introducevarchar(512)团队简介
team_creator_idbigint(64)not null团队创建者id
descriptionvarchar(128)团队描述
statusint(11)1状态。1正常,2解散
create_timebigint(64)创建时间
update_timebigint(64)更新时间

user_team_relation

团队-用户关系表,多对多的关系。

字段类型not null默认值备注
idbigint(64)not null主键id
user_idbigint(64)not null用户id
team_idbigint(64)not null团队id

comments

评论表。可以对资源(下一版加入资源中心)、对项目、对用户进行评论。

字段类型not null默认值备注
idbigint(64)not null主键id
pidbigint(64)父评论id
from_idbigint(64)not null评论者id(只可能是用户id)
to_idbigint(64)not null被评论者id(可能是资源、项目、用户id)
contentvarchar(512)not null评论内容
typeint(11)not null评论的类型:1资源,2项目,3用户
statusint(11)1评论状态:1正常,2删除
create_timebigint(64)创建时间
update_timebigint(64)更新时间

数据库 sql 文件放在了 GitHubdoc 仓库下,点击 这里 快速打开。

关注我们

在项目开发过程中我们会尽可能多的总结技术实现过程,并形成一系列文档,文档 + 源码 带给您最高效的学习体验。文档会在 CodeRiver 官方微信公众平台 CodeRiver河码 首发,也会在各博客平台发布,欢迎大家关注。

扫码或搜索微信号 code_river 关注微信公众平台:

参与项目

CodeRiver 是开源项目,任何想为开源事业贡献一份力量的小伙伴均可加入。

同时我们还建立了项目讨论群,如果您对项目感兴趣,可以进群一起讨论。

加入方式:

搜索并添加 wx 号: douglas1840,备注:coderiver


感谢大家一直以来的的支持,CodeRiver 团队将继续朝着打造全栈全平台精品开源项目的目标不懈努力!

您的鼓励是我们前行最大的动力,欢迎点赞,欢迎送小星星✨ ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值