内容简介:CodeRiver 是一个免费的项目协作平台,愿景是打通 IT 产业上下游,无论你是产品经理、设计师、程序员或是测试,还是其他行业人员,只要有好的创意、想法,都可以来 CodeRiver 免费发布项目,召集志同道合的队友一起将梦想变为现实!CodeRiver 本身还是一个大型开源项目,致力于打造全栈全平台企业级精品开源项目。涵盖了 React、Vue、Angular、小程序、ReactNative、Android、Flutter、Java、Node 等几乎所有主流技术栈,主打代码质量。目前已经有近
CodeRiver 是一个免费的项目协作平台,愿景是打通 IT 产业上下游,无论你是产品经理、设计师、 程序员 或是测试,还是其他行业人员,只要有好的创意、想法,都可以来 CodeRiver 免费发布项目,召集志同道合的队友一起将梦想变为现实!
CodeRiver 本身还是一个大型开源项目,致力于打造全栈全平台企业级精品开源项目。涵盖了 React、Vue、Angular、小程序、ReactNative、Android、Flutter、 Java 、Node 等几乎所有主流技术栈,主打代码质量。
目前已经有近 100
名开发者参与,每个技术栈都有多位经验丰富的大佬坐镇,更有两位架构师指导项目架构。无论你想学什么语言处于什么技术水平,相信都能在这里学有所获。
通过 高质量源码 + 博客 + 视频
,帮助每一位开发者快速成长。
项目地址: github.com/coderiver-o…
数据库关系图
产品的第一版功能相对简单,主要模块只有用户模块、项目模块,后期版本中将丰富更多功能,欢迎关注。
数据库关系图如下:
数据表详解
所有的 id 都采用了 Long (bigint)
类型,相比于字符串, Long
在查询比对方面有很大优势。
时间格式,除了只需时分的 time
类型,其他时间均存成时间戳,所以类型也是 Long (bigint)
。
详细的数据表文档如下:
user_info
用户表,存储用户的基本信息。但登录相关的信息单独抽出来了一张新表: 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) | 更新时间 |
user_login
用户登录表,存储登录的各种账号。每种账户都有一个 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) | 更新时间 |
user_role
用户角色表。存储用户角色分类:
产品经理、设计师、前端工程师、移动端工程师、小程序、游戏工程师、后端工程师、测试、DBA工程师、运维工程师、其他。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 角色id | |
name | varchar(64) | 角色名 |
user_experience
用户工作经验表。存储工作经验分类:
在校生,0年,1-2年,3-5年,5-8年,8-10年,10年+
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 经验id | |
name | varchar(64) | 经验名 |
work_experience
工作经历表。存储个人简介中的工作经历,每人的工作经历可能有多个。
字段 | 类型 | 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) | 更新时间 |
education_experience
教育经历表。存储个人简介中的教育经历,每人的教育经历可能有多个。
字段 | 类型 | 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) | 更新时间 |
user_like
用户点赞表。
字段 | 类型 | 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) | 修改时间 |
project_info
项目信息表。存储项目的基本信息。
字段 | 类型 | 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) | 更新时间 |
project_category
项目类型表。如电商、社交、教育等。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 项⽬目类型id | |
name | varchar(255) | 类⽬目类型名称 |
project_picture
项目图片表。存放项目截图。项目与图片是一对多的关系。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
project_id | bigint(64) | not null | 项⽬id | |
picture_url | varchar(255) | not null | 图⽚地址 |
project_like_user
项目点赞表。存储项目点赞的具体信息。
字段 | 类型 | 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) | 更新时间 |
team_application
组队申请表。有四种业务逻辑:申请加入项目,申请加入团队,邀请加入项目,邀请加入团队。
字段 | 类型 | 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) | 更新时间 |
user_project_relation
用户与项目的对应关系表。关系是多对多。
字段 | 类型 | 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) | 更新时间 |
team_info
团队信息表
字段 | 类型 | 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) | 更新时间 |
user_team_relation
团队-用户关系表,多对多的关系。
字段 | 类型 | not null | 默认值 | 备注 |
---|---|---|---|---|
id | bigint(64) | not null | 主键id | |
user_id | bigint(64) | not null | 用户id | |
team_id | bigint(64) | not null | 团队id |
comments
评论表。可以对资源(下一版加入资源中心)、对项目、对用户进行评论。
字段 | 类型 | 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 团队将继续朝着打造全栈全平台精品开源项目的目标不懈努力!
您的鼓励是我们前行最大的动力,欢迎点赞,欢迎送小星星:sparkles: ~
以上所述就是小编给大家介绍的《全栈全平台开源项目 CodeRiver 数据库设计文档》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 架构设计文档
- 架构评审一百问和设计文档五要素
- 终于!你们想了解的Local Aggregation的设计文档已上线!
- 要写系统设计文档了,但是不知道写什么,该怎么办?
- 任天堂遭史上最严重黑客攻击:完整源代码、设计文档及技术演示泄露
- sql – 在线协作架构设计(利用谷歌文档?)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
构建高可用Linux服务器
余洪春 / 机械工业出版社华章公司 / 2011-11-1 / 79.00元
资深Linux/Unix系统管理专家兼架构师多年一线工作经验结晶,51CTO和ChinaUnix等知名社区联袂推荐。结合实际生产环境,从Linux虚拟化、集群、服务器故障诊断与排除、系统安全性等多角度阐述构建高可用Linux服务器的最佳实践。本书实践性非常强,包含大量企业级的应用案例及相应的解决方案,读者可以直接用这些方案解决在实际工作中遇到的问题。 全书一共10章。第1章以作者的项目实践为......一起来看看 《构建高可用Linux服务器》 这本书的介绍吧!