什麼是Salesforce Junction Object?

什麼是Salesforce Junction Object?

更新於 發佈於 閱讀時間約 4 分鐘

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不會連帶刪除關聯的子物件紀錄

Lookup Relationship不會連帶刪除關聯的子物件紀錄


與Master-detail相對的是Lookup Relationship,差異在有Lookup關係的兩物件不會因為一方刪除紀錄而被連帶刪除。

常見的帳戶與使用者就是Lookup Relationship。




為什麼要有Junction Object?

Junction Object存在目的是為了服務『多對多關係』。日常生活中的多對多關係比如有顧客與產品、學生與課程。一個顧客可能買多項產品,一個產品也可能被多個顧客購買。

顧客對應多項產品

顧客對應多項產品

產品對應多位顧客

產品對應多位顧客

但如果只在Salesforce中單純建立兩個物件:顧客、產品,是做不到多對多關係的。

A. 你可能想說就在顧客物件中新增紀錄產品的欄位啊?但這種方法僅能記錄一個產品,無法滿足顧客與產品一對多的需求。

新增查找產品欄位僅能建立一對一關係

新增查找產品欄位僅能建立一對一關係

新增查找產品欄位僅能讓顧客對應到一項產品

新增查找產品欄位僅能讓顧客對應到一項產品


(無法滿足紅線的關係)






B. 如果再建立第二個產品欄位呢?或許可以解決問題,但這不是好方式,因為當顧客越買越多產品,管理員也要隨之在後台新增更多的產品欄位。

購買越多產品,就需越多產品欄位紀錄

購買越多產品,就需越多產品欄位紀錄

C. 如果不要新增欄位,而是另外新增一筆顧客紀錄,紀錄該顧客購買的第二項產品呢?一樣不是好方法,這會使得有重複顧客紀錄,並不是理想的資料管理方式。

重複顧客紀錄會使得後續分析時出現誤差

重複顧客紀錄會使得後續分析時出現誤差

最終解法是,需要新增一個中介物件來紀錄顧客與產品的每個關係

建立Junction Object - 訂單

建立Junction Object - 訂單

在顧客與產品的例子中,JuntionObject可以是訂單。而且為了關聯顧客與產品物件,訂單物件會分別與顧客、產品物件建立Master-detail Relationship欄位。

建立完成後,只要在訂單上紀錄,就能紀錄顧客與產品多對多的關係。

比如下圖中

  • 訂單 1 紀錄「顧客王一」購買了「產品A」。
  • 訂單 2 紀錄「顧客王一」購買了「產品B」。
junction object-訂單

junction object-訂單

雖然我們只在訂單物件上操作,但在顧客以及產品物件的相關紀錄處也看見顧客購買的所有產品,或是產品所有的購買顧客了,多對多關係完美呈現。

在顧客物件中可以看到該顧客買的所有產品

在顧客物件中可以看到該顧客買的所有產品

在產品物件中可看見該產品的所有購買顧客

在產品物件中可看見該產品的所有購買顧客



那如何建立Junction Object呢?

Step 1. 先建立三個自訂物件

Step 2. 在預計成為Junction Object的物件中新增兩個Master-detail Relationship欄位,並分別Related to主物件

新增Master-detail Relationship欄位

新增Master-detail Relationship欄位

Related to主物件-顧客

Related to主物件-顧客

Related to主物件-產品

Related to主物件-產品

Step 3. 最後調整兩個主物件Page Layout中的Related list欄位,拉出想要的資訊

調整Related list欄位

調整Related list欄位

完成!


avatar-img
YI-HSUAN的沙龍
2會員
16內容數
Salesforce功能強大,但有時候要閱讀大量的資料才能知道自己下一步要如何操作,社群也幾乎是英文語系社群。有時候在想如果中文社群中有人可以分享他的經驗,我就會輕鬆很多了!於是這個專題就誕生了!
留言
avatar-img
留言分享你的想法!
YI-HSUAN的沙龍 的其他內容
Salesforce每筆紀錄都有「建立日期」欄位,其欄位類型為DataTime。但是在調報告時會發現「建立日期」只會顯示到日期,不會顯示時間。該如何在報告中查看到建立時間呢?
日前通過了Platform App Builder的證照考(灑花) 以下為我的一些準備方式以及統整的題目,分享給需要的人。
CRM系統重要的功能之一就是存取權設定,控制不同使用者可以看到或編輯的內容。客戶敏感資料不是所有Salesforce使用者都能觀看,甚至隨意編輯的。那麼Salesforce有哪些存取權設定呢?
Salesforce每筆紀錄都有「建立日期」欄位,其欄位類型為DataTime。但是在調報告時會發現「建立日期」只會顯示到日期,不會顯示時間。該如何在報告中查看到建立時間呢?
日前通過了Platform App Builder的證照考(灑花) 以下為我的一些準備方式以及統整的題目,分享給需要的人。
CRM系統重要的功能之一就是存取權設定,控制不同使用者可以看到或編輯的內容。客戶敏感資料不是所有Salesforce使用者都能觀看,甚至隨意編輯的。那麼Salesforce有哪些存取權設定呢?