MySQL表關係總結

  • 2020 年 9 月 27 日
  • 筆記

一對多關係  : 一對多關係是關係資料庫中兩個表之間的一種關係,該關係中第一個表中的單個行可以與第二個表中的一個或多個行相關,但第二個表中的一個行只可以與第一個表中的一個行相關。

一對多關係,一般是一個表的主鍵對應另一個表的非主鍵,主鍵的值是不能重複的,而非主鍵值是可以重複的,

一個主鍵值對應另一個表的非主鍵的值,那麼就只有一個值對一個值或一個值對多個值兩種可能,故稱一對多。

 

思考一下,單獨的商品表、訂單表無法記錄這條資訊嗎?

商品表:一個蘋果手機,有土豪金,暗夜灰兩種規格。

訂單表:一個訂單,購買了臉盆、電腦兩個商品。

 

例如:新到商品蘋果手機,有兩種型號,土豪金 1499、暗夜灰 1899。我們要在網上售賣,則需要創建蘋果手機商品,並且添加蘋果手機有兩種型號。

可以通過兩種方式:

1.創建商品,添加規格欄位,來記錄商品有哪些規格[xx,xx,xx],這種方式雖然單表可以記錄一條記錄,包括了這條記錄的所有資訊,但是數據量過多會導致查詢緩慢。

2.新建規格表,為需要添加規格商品創建規格記錄,及goods_uuid=我們要添加規格的商品uuid。查詢時通過goods_uuid到對應欄位及可查詢。

 

總結:

1.單表可以存放一條記錄的完整資訊,但是不符合規範。

2.因為單表我們創建一條記錄無法表達這條記錄的完整性, 所以需要創建另一張表來完善這條記錄的完整。