全棧全平臺開源項目 CodeRiver 數據庫設計文檔

前言

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_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
email 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 文件放在了 GitHubdoc 倉庫下,點擊 這裏 快速打開。

關注咱們

在項目開發過程當中咱們會盡量多的總結技術實現過程,並造成一系列文檔,文檔 + 源碼 帶給您最高效的學習體驗。文檔會在 CodeRiver 官方微信公衆平臺 CodeRiver河碼 首發,也會在各博客平臺發佈,歡迎你們關注。

掃碼或搜索微信號 code_river 關注微信公衆平臺:

參與項目

CodeRiver 是開源項目,任何想爲開源事業貢獻一份力量的小夥伴都可加入。

同時咱們還創建了項目討論羣,若是您對項目感興趣,能夠進羣一塊兒討論。

加入方式:

搜索並添加 wx 號: douglas1840,備註:coderiver


感謝你們一直以來的的支持,CodeRiver 團隊將繼續朝着打造全棧全平臺精品開源項目的目標不懈努力!

您的鼓勵是咱們前行最大的動力,歡迎點贊,歡迎送小星星✨ ~

相關文章
相關標籤/搜索