2023-05-07|閱讀時間 ‧ 約 4 分鐘

什麼是Salesforce Junction Object?

Junction Object是指擁有兩個Master-detail Relationship的物件。

那什麼是Master-detail Relationship呢?
Master-detail Relationship 會連帶刪除關聯的子物件紀錄
Master-detail Relationship 會連帶刪除關聯的子物件紀錄
Master-detail Relationship是兩個物件間的一種關係,一方是主物件,一方是子物件。 Master-detail Relationship有個特性就是當刪掉主物件的紀錄時,也會同時刪掉關聯的子物件紀錄。 常見的帳戶與連絡人就是Master-detail Relationship。
Lookup Relationship不會連帶刪除關聯的子物件紀錄
與Master-detail相對的是Lookup Relationship,差異在有Lookup關係的兩物件不會因為一方刪除紀錄而被連帶刪除。 常見的帳戶與使用者就是Lookup Relationship。

為什麼要有Junction Object?
Junction Object存在目的是為了服務『多對多關係』。日常生活中的多對多關係比如有顧客與產品、學生與課程。一個顧客可能買多項產品,一個產品也可能被多個顧客購買。
顧客對應多項產品
產品對應多位顧客
但如果只在Salesforce中單純建立兩個物件:顧客、產品,是做不到多對多關係的。
A. 你可能想說就在顧客物件中新增紀錄產品的欄位啊?但這種方法僅能記錄一個產品,無法滿足顧客與產品一對多的需求。
新增查找產品欄位僅能建立一對一關係
新增查找產品欄位僅能讓顧客對應到一項產品
(無法滿足紅線的關係)
B. 如果再建立第二個產品欄位呢?或許可以解決問題,但這不是好方式,因為當顧客越買越多產品,管理員也要隨之在後台新增更多的產品欄位。
購買越多產品,就需越多產品欄位紀錄
C. 如果不要新增欄位,而是另外新增一筆顧客紀錄,紀錄該顧客購買的第二項產品呢?一樣不是好方法,這會使得有重複顧客紀錄,並不是理想的資料管理方式。
重複顧客紀錄會使得後續分析時出現誤差
最終解法是,需要新增一個中介物件來紀錄顧客與產品的每個關係
建立Junction Object - 訂單
在顧客與產品的例子中,JuntionObject可以是訂單。而且為了關聯顧客與產品物件,訂單物件會分別與顧客、產品物件建立Master-detail Relationship欄位。
建立完成後,只要在訂單上紀錄,就能紀錄顧客與產品多對多的關係。
比如下圖中
  • 訂單 1 紀錄「顧客王一」購買了「產品A」。
  • 訂單 2 紀錄「顧客王一」購買了「產品B」。
junction object-訂單
雖然我們只在訂單物件上操作,但在顧客以及產品物件的相關紀錄處也看見顧客購買的所有產品,或是產品所有的購買顧客了,多對多關係完美呈現。
在顧客物件中可以看到該顧客買的所有產品
在產品物件中可看見該產品的所有購買顧客

那如何建立Junction Object呢?
Step 1. 先建立三個自訂物件
Step 2. 在預計成為Junction Object的物件中新增兩個Master-detail Relationship欄位,並分別Related to主物件
新增Master-detail Relationship欄位
Related to主物件-顧客
Related to主物件-產品
Step 3. 最後調整兩個主物件Page Layout中的Related list欄位,拉出想要的資訊
調整Related list欄位
完成!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.