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 團隊將繼續朝着打造全棧全平臺精品開源項目的目標不懈努力!
您的鼓勵是咱們前行最大的動力,歡迎點贊,歡迎送小星星✨ ~