kaobei.opendata
kaobei.opendata copied to clipboard
協作者名單
後台
- 編輯協作者名單,標註協作者
前台
- 協作者專區,顯示協作者列表(以協作項目數量高至低排序)
資料表
- 協作項目
- 使用者has協作項目(關聯表)
- 前台多個「協作者名單」選項
- 剛剛想到的資料表
編號 | 協作項目 |
---|---|
1 | 功德名單 |
2 | 公告系統 |
編號 | 協作項目編號 | 協作者編號 |
---|---|---|
1 | 1 | 212 |
2 | 1 | 213 |
3 | 2 | 213 |
排行高到低我再想想
排行直接做SQL
我在想頭像跟姓名要一起顯示,或者直接顯示姓名就好?
協作項目全部列舉顯示還是多字就刪除?
到時候可能看排版的樣式做微調吧
名次 | 頭像 | 姓名 | 協作項目 |
---|---|---|---|
1 | 頭像.jpg | 請不要大喊趕羚羊 | 功德名單、公告系統、首頁、使用者... |
2 | 頭像2.jpg | 或者賽羚羊 | 功德名單、公告系統 |
2 | 頭像3.jpg | 這裡不是大草原 | 公告系統、首頁 |
4 | 頭像4.jpg | 不會有羚羊出現 | 首頁 |
版主覺得 OK 就 Assign 吧!
我仔細想了一下後,排行不要做成 Tabel 比較好,因為這不是每分每秒都會變動的東西,所以兩種方式:
- 透過
Schedule
來排程更新排行榜的 JSON 資料。 - 協作相關項目每次更新時,觸發
Event Listeners
去更新 JSON 資料。
會這麼做的原因是因為這個排行榜會時常去讀,但這些資料卻可能只是幾天更新一次,如果資料儲存在資料庫當中的話,會變成相同的資料一直讀取,如果有這種情況發生,把資料轉成 JSON 儲存在 storage
當中會比較好。
另外協作項目、協作者名單的資料表欄位再加上 created_at
、updated_at
及 deleted_at
,做到軟刪除(SoftDelete)。
頭像的部分可以透過一些方法來獲取,因為 users
這張資料表有 avatar_type
及 avatar_location
這兩個欄位,分別紀錄使用者頭像類別、頭像儲存位置,所以在程式當中可以透過 App\Models\Auth\User
這個 ORM 當中的 getPicture
方法來獲取完整的使用者頭像連結。
participant_project
id | name | description | created_at | updated_at | deleted_at |
---|---|---|---|---|---|
1 | 功德名單 | bla bal bal ... | 2019-09-09 11:30:00 | 2019-09-09 11:30:00 | null |
2 | 公告系統 | bla bal bal ... | 2019-09-09 11:30:00 | 2019-09-09 11:30:00 | null |
participant_has_model
id | project_id | model_id | model_type | created_at | updated_at | deleted_at |
---|---|---|---|---|---|---|
1 | 1 | 212 | App\Models\Auth\User | 2019-09-09 11:30:00 | 2019-09-09 11:30:00 | null |
2 | 1 | 213 | App\Models\Auth\User | 2019-09-09 11:30:00 | 2019-09-09 11:30:00 | null |
3 | 2 | 213 | App\Models\Auth\User | 2019-09-09 11:30:00 | 2019-09-09 11:30:00 | null |