CodeRiver 是一个免费的项目协做平台,愿景是打通 IT 产业上下游,不管你是产品经理、设计师、程序员或是测试,仍是其余行业人员,只要有好的创意、想法,均可以来 CodeRiver 免费发布项目,召集志同道合的队友一块儿将梦想变为现实!前端
CodeRiver 自己仍是一个大型开源项目,致力于打造全栈全平台企业级精品开源项目。涵盖了 React、Vue、Angular、小程序、ReactNative、Android、Flutter、Java、Node 等几乎全部主流技术栈,主打代码质量。git
目前已经有近 100
名开发者参与,每一个技术栈都有多位经验丰富的大佬坐镇,更有两位架构师指导项目架构。不管你想学什么语言处于什么技术水平,相信都能在这里学有所获。程序员
经过 高质量源码 + 博客 + 视频
,帮助每一位开发者快速成长。github
项目地址:github.com/coderiver-o…sql
产品的初版功能相对简单,主要模块只有用户模块、项目模块,后期版本中将丰富更多功能,欢迎关注。数据库
数据库关系图以下:小程序
全部的 id 都采用了Long (bigint)
类型,相比于字符串,Long
在查询比对方面有很大优点。后端
时间格式,除了只需时分的 time
类型,其余时间均存成时间戳,因此类型也是 Long (bigint)
。微信
详细的数据表文档以下:前端工程师
用户表,存储用户的基本信息。但登陆相关的信息单独抽出来了一张新表:user_login
,便于后期扩展。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
user_id | bigint(64) | not null | 用户主键id | |
username | varchar(255) | not null | 用户名/昵称 | |
password | varchar(255) | not null | 加密后的密码 | |
gender | int(11) | 0 | 性别,0未知,1男,2女 | |
avatar | varchar(255) | 头像 | ||
city | bigint(64) | 城市编码 | ||
role_id | bigint(64) | 角色id | ||
experience_id | bigint(64) | 工做经验id | ||
workday_start_time | time | 工做日空闲开始时间 | ||
workday_end_time | time | 工做日空闲结束时间 | ||
weekend_start_time | time | 周末空闲开始时间 | ||
weekend_end_time | time | 周末空闲结束时间 | ||
influence | int(11) | 影响力,由多个数据动态计算而来 | ||
introduce | varchar(512) | 我的简介 | ||
status | int(11) | not null | 1 | 帐户状态。1正常,2冻结,3注销 |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
用户登陆表,存储登陆的各类帐号。每种帐户都有一个 active
字段,为了标记这种登陆方式是否可用。
例如用户经过邮箱注册了一个帐号,并跟微信绑定了,此时用微信或者邮箱都可登陆,微信和邮箱的 active
状态值都是1。某天用户把微信解绑了,只能经过邮箱登陆,此时微信的 active
状态值是 2 表示不可用,邮箱的 active
状态值是 1 表示可用。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
user_id | bigint(64) | not null | 用户id | |
varchar(64) | 邮箱 | |||
email_active | int(11) | 0 | 状态,0不可用,1可用 | |
phone | varchar(64) | 手机号 | ||
phone_active | int(11) | 0 | 状态,0不可用,1可用 | |
wechat_id | varchar(255) | 微信id | ||
wechat_active | int(11) | 0 | 状态,0不可用,1可用 | |
sina_id | varchar(255) | 新浪id | ||
sina_active | int(11) | 0 | 状态,0不可用,1可用 | |
github_id | varchar(255) | github id | ||
github_active | int(11) | 0 | 状态,0不可用,1可用 | |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
用户角色表。存储用户角色分类:
产品经理、设计师、前端工程师、移动端工程师、小程序、游戏工程师、后端工程师、测试、DBA工程师、运维工程师、其余。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 角色id | |
name | varchar(64) | 角色名 |
用户工做经验表。存储工做经验分类:
在校生,0年,1-2年,3-5年,5-8年,8-10年,10年+
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 经验id | |
name | varchar(64) | 经验名 |
工做经历表。存储我的简介中的工做经历,每人的工做经历可能有多个。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
user_id | bigint(64) | not null | 用户id | |
company_name | varchar(64) | 公司名 | ||
position | varchar(32) | 职位 | ||
comment | varchar(512) | 备注 | ||
start_date | bigint(64) | 开始日期(格式:2018-09) | ||
end_date | bigint(64) | 结束日期(格式:2018-09) | ||
status | int(11) | not null | 1 | 状态。1正常,2删除 |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
教育经历表。存储我的简介中的教育经历,每人的教育经历可能有多个。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
user_id | bigint(64) | not null | 用户id | |
school_name | varchar(64) | 学校名 | ||
major | varchar(32) | 专业 | ||
degree | varchar(32) | 学位 | ||
comment | varchar(512) | 备注说明 | ||
start_date | bigint(64) | 开始日期(格式:2018-09) | ||
end_date | bigint(64) | 结束日期(格式:2018-09) | ||
status | int(11) | 1 | 状态。1正常,2删除 | |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
用户点赞表。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
liked_user_id | bigint(64) | not null | 被点赞的⽤用户id | |
liked_post_id | bigint(64) | not null | 点赞的⽤用户id | |
status | int(11) | not null | 1 | 点赞状态,1 点赞,2取消 |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 修改时间 |
项目信息表。存储项目的基本信息。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
project_id | bigint(64) | not null | 项目id | |
project_name | varchar(255) | 项目名字 | ||
project_avatar | varchar(255) | 项目封⾯面 | ||
project_difficulty | float | 项目难度 | ||
category_id | bigint(64) | not null | 项⽬类型id | |
project_status | int(11) | 0 | 项目状态, 0招募中,1 进行中,2已完成,3失败,4延期,5删除 | |
project_introduce | varchar(512) | 项目简介 | ||
project_creator_id | bigint(64) | not null | 项⽬建立者id | |
team_id | bigint(64) | 项目所属团队id | ||
project_start_date | bigint(64) | 项目开始时间,格式:2018-10-01 | ||
project_end_date | bigint(64) | 项⽬结束时间,格式:2018-10-01 | ||
project_delay_date | bigint(64) | 项⽬延迟的⽇期,格式:2018-10-01 | ||
delay_count | int(11) | 项⽬目延期次数。最多三次每次最多一个⽉ | ||
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
项目类型表。如电商、社交、教育等。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 项⽬目类型id | |
name | varchar(255) | 类⽬目类型名称 |
项目图片表。存放项目截图。项目与图片是一对多的关系。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
project_id | bigint(64) | not null | 项⽬id | |
picture_url | varchar(255) | not null | 图⽚地址 |
项目点赞表。存储项目点赞的具体信息。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
project_id | bigint(64) | not null | 项目id | |
user_id | bigint(64) | not null | 点赞的用户id | |
status | int(11) | not null | 0 | 点赞状态,0 取消点赞,1点赞 |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
组队申请表。有四种业务逻辑:申请加入项目,申请加入团队,邀请加入项目,邀请加入团队。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
project_id | bigint(64) | 项目id | ||
team_id | bigint(64) | 团队id | ||
target_user_id | bigint(64) | not null | 目标用户id。若是是用户主动申请,就是申请者id;若是是被邀请,就是被邀请者id。 | |
creator_user_id | bigint(64) | not null | 申请建立者id。若是是用户主动申请,target_user_id 和 creator_user_id 都是该申请者id;若是是被邀请,creator_user_id 是邀请者id。 | |
role_id_apply | bigint(64) | not null | 申请在本项目中的角色id | |
workday_start_time | time | 工做日空闲开始时间 | ||
workday_end_time | time | 工做日空闲结束时间 | ||
weekend_start_time | time | 周末空闲开始时间 | ||
weekend_end_time | time | 周末空闲结束时间 | ||
comments | varchar(512) | 备注消息 | ||
status | int(11) | 1 | 状态。1待审核,2经过,3驳回,4撤回,5删除 | |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
用户与项目的对应关系表。关系是多对多。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
project_id | bigint(64) | not null | 项目id | |
role_id_project | bigint(64) | not null | 用户在本项目的角色id | |
user_id | bigint(64) | not null | 用户id | |
status | int(11) | 0 | 状态。0未匹配,1已匹配 | |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
团队信息表
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
team_id | bigint(64) | not null | 团队主键id | |
team_name | varchar(255) | 团队名称 | ||
team_avatar | varchar(255) | 团队logo | ||
team_introduce | varchar(512) | 团队简介 | ||
team_creator_id | bigint(64) | not null | 团队建立者id | |
description | varchar(128) | 团队描述 | ||
status | int(11) | 1 | 状态。1正常,2解散 | |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
团队-用户关系表,多对多的关系。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
user_id | bigint(64) | not null | 用户id | |
team_id | bigint(64) | not null | 团队id |
评论表。能够对资源(下一版加入资源中心)、对项目、对用户进行评论。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
pid | bigint(64) | 父评论id | ||
from_id | bigint(64) | not null | 评论者id(只多是用户id) | |
to_id | bigint(64) | not null | 被评论者id(多是资源、项目、用户id) | |
content | varchar(512) | not null | 评论内容 | |
type | int(11) | not null | 评论的类型:1资源,2项目,3用户 | |
status | int(11) | 1 | 评论状态:1正常,2删除 | |
create_time | bigint(64) | 建立时间 | ||
update_time | bigint(64) | 更新时间 |
数据库 sql 文件放在了 GitHub 的 doc 仓库下,点击 这里 快速打开。
在项目开发过程当中咱们会尽量多的总结技术实现过程,并造成一系列文档,文档 + 源码 带给您最高效的学习体验。文档会在 CodeRiver 官方微信公众平台 CodeRiver河码
首发,也会在各博客平台发布,欢迎你们关注。
扫码或搜索微信号 code_river
关注微信公众平台:
CodeRiver 是开源项目,任何想为开源事业贡献一份力量的小伙伴都可加入。
同时咱们还创建了项目讨论群,若是您对项目感兴趣,能够进群一块儿讨论。
加入方式:
搜索并添加 wx 号:
douglas1840
,备注:coderiver
感谢你们一直以来的的支持,CodeRiver 团队将继续朝着打造全栈全平台精品开源项目的目标不懈努力!
您的鼓励是咱们前行最大的动力,欢迎点赞,欢迎送小星星✨ ~