以飲料店的商品種類為例,假設我們現在有飲料和杯子兩種資料。 飲料: id name 1 綠茶 2 紅茶 3 青草茶 杯子: id size 1 500 2 600 3 700 一對一(One to One) 若飲料和杯子是一對一的關係,那麼情況就類似這樣: 綠茶只用 500 cc 的杯子裝 紅茶只用 600 cc 的杯子裝 青草茶只用 700 cc 的杯子裝 一種飲料只有一個尺寸的杯子,而且一個尺寸的杯子也只對應到一種飲料。在這種情況下要建立關聯,有下列兩種方式,擇一即可。這兩種做法在技術上效果是一樣的,不過語意解讀上可能不太一樣。 把關聯欄位加在飲料(語意上,是飲料有杯子這個屬性) 把關聯欄位加在杯子(語意上,是杯子有飲料這個屬性) 把關聯欄位加在飲料的資料表: id name cup_id 1 綠茶 1 2 紅茶 2 3 青草茶 3 把關聯欄位加在杯子的資料表: id size drink_id 1 500 1 2 600 2 3 700 3 一對多(One to Many) 若飲料和杯子是一對多的關係,那麼情況就類似這樣: 綠茶用 500 cc、700 cc 的杯子裝 紅茶只用 600 cc 的杯子裝 一種飲料有許多尺寸的杯子,而且一個尺寸的杯子只對應到一種飲料。 或者是這樣: 綠茶、紅茶、青草茶都只用 500 cc 的杯子裝 一個尺寸的杯子對應到許多種飲料,而且一種飲料只有一個尺寸的杯子。 在這種情況下要建立關聯,一般會選擇加在多的那一邊。如果加在少的那一
Comments
Post a Comment