當我們直接用 references 建立關係,他會自己幫我們加入 index 索引。
上課的例子中他還會幫我們加入 foreign_key: true
跟圖二不一樣的是多了 foreign_key: true
我在查index索引的時候有看到另外兩種寫法
如果今天是圖三的話
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 之間有多了一些方法可以互相查詢,但不表示他們在資料庫上就有直接的關連。