簡述關系數據庫中表與表的 3 種關系
一對一的關系:例如:一個人對應一個唯一的身份證號,即為一對一的關系。
一對多關系 :例如:一個班級對應多名學生,一個學生只能屬於一個班級,即為一對多關系
多對多關系 :例如:一個學生可以選多門課程,而同一門課程可以被多個學生選修,彼此的對應關系 即是多對多關系
一對一的關系
比如一篇文章信息對應着一個文章詳情,就是一對一的關系,可以通過文章id查找到對應的文章詳情,也可以通過文章詳情找到對應的文章信息
其實這兩個表可以放在一起,但是為了更方便查找,所以做了一個垂直的拆分
再比如一個身份證對應着一個駕駛證,可以通過身份證查找到這個人的駕駛證,也可以通過駕駛證上的身份證號碼查找到這個人的身份證
這兩張表最好不要放在一起,因為駕駛證不一定會有,必須考了駕照才會有駕駛證
一對多關系
比如一個商品分類對應着多個商品,某個商品也只屬於一個分類,這樣就是一個一對多的關系
再比如一個訂單號可以對應多個商品,某個商品只屬於一個訂單號
多對多關系
一個商品可以被多個用戶關注,一個用戶也可以關注多個商品,這樣就形成了多對多的關系
表的設計的時候,需要三個表:用戶表,商品表,中間表(中間表保存着用戶表中的id和商品表中的id)
比如下面查找用戶id是1的用戶收藏了哪些商品,第一步首先查中間表將用戶id為1的(這里有兩條數據),然后分別獲取兩條數據中的pid,最后去商品表中把這兩個商品查找出來