iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 3
0
自我挑戰組

rails 學習紀錄系列 第 3

[Day3] 關於 index: true 和 foreign_key: true

當我們直接用 references 建立關係,他會自己幫我們加入 index 索引。
上課的例子中他還會幫我們加入 foreign_key: true

跟圖二不一樣的是多了 foreign_key: true

我在查index索引的時候有看到另外兩種寫法

  1. index: true
  2. index: true , foreign_key: true

    如果今天是圖二的index: true ,他會在appointments表中創建 student_id 。

如果今天是圖三的話
educations表格裡的 profile_id 會 = profiles的foreign key 。如果今天想要寫入資料到educations的話,他會去檢查educations裡的 profile_id 是不是 =profiles的foreign key。可以確保關聯式資料表的資料的完整性。而如果是圖二的寫法的話, 則不會去檢查。

foreign_key: true 的用途,便是會在建立 table 的時候再加上這樣的限制,注意,這個限制是直接建立在 table 裡的喔,不是建立在抽象層的 Model。

而像 has_many 或是 belongs_to 之類的方法就是建立在抽象層 Model 之間的關係,有這樣的設定僅表示這兩個 Model 之間有多了一些方法可以互相查詢,但不表示他們在資料庫上就有直接的關連。


上一篇
[Day2] 關於PORO(Plain Old Ruby Object)
下一篇
[Day4]關於 index: true 跟 foreign_key: true (下)
系列文
rails 學習紀錄14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言