内容简介: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 – 在线协作架构设计(利用谷歌文档?)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First HTML5 Programming
Eric Freeman、Elisabeth Robson / O'Reilly Media / 2011-10-18 / USD 49.99
What can HTML5 do for you? If you're a web developer looking to use this new version of HTML, you might be wondering how much has really changed. Head First HTML5 Programming introduces the key featur......一起来看看 《Head First HTML5 Programming》 这本书的介绍吧!