前言
CodeRiver 是一個免費的專案協作平臺,願景是打通 IT 產業上下游,無論你是產品經理、設計師、程式設計師或是測試,還是其他行業人員,只要有好的創意、想法,都可以來 CodeRiver 免費釋出專案,召集志同道合的隊友一起將夢想變為現實!
CodeRiver 本身還是一個大型開源專案,致力於打造全棧全平臺企業級精品開源專案。涵蓋了 React、Vue、Angular、小程式、ReactNative、Android、Flutter、Java、Node 等幾乎所有主流技術棧,主打程式碼質量。
目前已經有近 100
名開發者參與,每個技術棧都有多位經驗豐富的大佬坐鎮,更有兩位架構師指導專案架構。無論你想學什麼語言處於什麼技術水平,相信都能在這裡學有所獲。
通過 高質量原始碼 + 部落格 + 視訊
,幫助每一位開發者快速成長。
資料庫關係圖
產品的第一版功能相對簡單,主要模組只有使用者模組、專案模組,後期版本中將豐富更多功能,歡迎關注。
資料庫關係圖如下:
資料表詳解
所有的 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 團隊將繼續朝著打造全棧全平臺精品開源專案的目標不懈努力!
您的鼓勵是我們前行最大的動力,歡迎點贊,歡迎送小星星✨ ~