iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 21
0
自我挑戰組

從零開始的後端異世界生活系列 第 21

Day 21 - 新增 User Entity 並增加與 Task 之 Database Relation

  • 分享至 

  • xImage
  •  

新增 User Entity

到目前為止,我們雖然有了 Task 這張表能夠記錄任務資訊,但既然我們是開發後端的,其中滿精髓的一點就是身份認證(Authentication),我要知道這個任務是屬於哪一個人的(哪個帳號的),這樣他下次登入進來後才能打獲取所有任務資訊 API,得到屬於他的任務。

那我們就來吧,先打開 DBeaver,到 taskmanagement 這顆 DB 進行新建表:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619rnhKs2LSXD.png

打開之後,先將表名取為 user
https://ithelp.ithome.com.tw/upload/images/20201006/20119619IV8O8lxRzW.png

然後它會需要一個 Primary Key,弄個 id 給它:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619rM11NQf4Fb.png

https://ithelp.ithome.com.tw/upload/images/20201006/20119619qjSEisp62Y.png

然後這邊假設前端會用 Firabase 來處理登入相關事項,這邊先記錄 Firebase OAuth ID:
https://ithelp.ithome.com.tw/upload/images/20201006/201196190By80NDZG0.png

最後再給它一個創建時間戳吧,那這張表目前長這樣:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619EYIJhF0fif.png

新增 Database Relation

再來我們要新增 UserTask 這兩張表的關係,但我們必須先到 Task 這張表新增一個屬性,我們先將 Task 清空:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619ylfhtoAPIb.png

然後新增一個欄位 user_id 用來對應身份的:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619vHIIIOGj7r.png

然後我們到 Task 表的外鍵,選擇新增外鍵:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619p51LHRhqr8.png

這邊我們選擇 Taskuser_id 是參照 user 表的 id:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619mhYnYpSIHS.png

好了之後,這兩者之間就會建立關聯:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619H1QWph7WQW.png

然後我們更新一下 Orm,看看長怎樣。

OK,這樣 User 表自動生成了,然後也幫我們建立了一對多的關係:
https://ithelp.ithome.com.tw/upload/images/20201006/201196198qt0sb64mn.png

到 Task 表這邊也更新了多對一的關係:
https://ithelp.ithome.com.tw/upload/images/20201006/20119619tGYtOYIQtO.png

/*
本系列文係個人新手開發心得,可能會有許多錯誤,煩請多多包容不吝指教。
*/


上一篇
Day 20 - 把 Repository<Entity> 注入到 Service 中並使用它
下一篇
Day 22 - 在 NestJS 中實作 JWT 與 AuthModule (1)
系列文
從零開始的後端異世界生活30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言