Microsoft Dataverse 中的資料表關聯性定義了資料表資料列與其他資料表或相同資料表的資料列相關聯的方式。 資料表關聯性有兩種類型:
一對多關聯
在一對多表格關係中,許多參照 (相關) 表格列可以與單一參照 (主要) 表格列相關聯。 被參照資料表資料列有時會稱為「上層」,而參照其他資料表的資料列稱為「下層」。 多對一刪除只是一對多關聯的下層觀點。
例如,在學校案例中,多個課程可能會在單一教室中授課,因此班級表格會與課程表格具有一對多的關係。
多對多關聯性
在多對多資料表關係中,許多資料表資料列可以與許多其他資料表資料列相關聯。 使用多對多關係相關的列可以被視為對等關係,且關係是互惠的。
例如,在前面提到的同一個學校場景中,一個學生可以報名多門課程,每門課程可以有多個學生。 這種類型的關聯性允許更複雜的資料關聯,並使用 Dataverse 中的 Power Apps 進行管理。
關聯性在 Dataverse 中的運作方式
資料表關聯性定義資料表資料列如何在 Dataverse 中相互關聯。 在最簡單的層級上,將查閱資料行新增至資料表會在兩個資料表之間建立新的 1:N (一對多) 關聯性,並可讓您將該查閱資料行放在表單上。 使用查閱直欄,使用者可以將該表格的多個 子 資料列與單一 父 表格資料列相關聯。
除了簡單地定義資料列如何與其他資料列相關之外,1:N 資料表關係還提供資料來解決以下問題:
- 當我刪除一列時,是否也應該刪除與該列相關的任何列?
- 當我指派資料列時,是否也需要將與該資料列相關的所有資料列指派給新擁有者?
- 當我在現有行的上下文中創建新的相關行時,如何簡化數據輸入過程?
- 檢視資料列的人員要如何才能檢視相關聯的資料列?
資料表也可以參與 N:N (多對多) 關係,其中兩個資料表的任意數目的資料列可以彼此相關聯。
決定是否要使用資料表關聯性或連線
資料表關聯性是會在 Dataverse 中造成變更的中繼資料。 這些關係允許查詢有效地擷取相關資料。 使用表格關聯來定義可定義表格或可供大多數資料列使用的正式關聯。 例如,沒有潛在客戶的機會就沒有用了。 Dynamics 365 for Sales中的機會資料表與競爭對手資料表建立 N:N 關係,此功能亦可在 Dynamics 365 for Sales 中使用。 這允許將多個競爭者新增至商機。 您可能想要擷取此資料,並建立顯示競爭對手的報告。
資料列之間還有其他不太正式的關係類型,稱為 連線。 例如,知道兩個聯絡人是否已婚,或者他們是工作以外的朋友,或者曾經為另一個帳戶工作的聯絡人可能會很有用。 大多數企業不會使用此類資訊產生報告,也不會要求輸入該資訊,因此建立表格關聯性可能不值得。 其他資訊: 設定連線角色
資料表關聯性的類型
當您在 Power Apps 中檢視關聯性時,您可能會認為有三種類型的資料表關聯性。 如下表所示,實際上只有兩種。
| 關聯類型 | Description |
|---|---|
| 1:N (一對多) | 一種表格關聯性,其中 主要表格 的一個資料列可以與許多其他 相關表格 資料列相關聯,因為相關表格上有查閱欄。 檢視主要表格列時,您可以看到與其相關聯的相關表格列清單。 在 Power Apps 入口網站中, 目前資料表代表 主要資料表。 |
| N:N (多對多) | 一種表關係,它依賴於一個特殊的 關係表,有時稱為 Intersect 表,這樣一個表的許多行就可以與另一個表的許多行相關聯。 檢視 N:N 關係中任一表格的資料列時,您可以看到與其相關的其他表格的任何資料列清單。 |
N:1 (多對一) 關聯性類型存在於使用者介面中,因為設計工具會顯示依資料表分組的檢視。 1:N 關聯性實際上存在於資料表 之間 ,並將每個資料表稱為 主要/目前資料表 或 相關資料表。 相關表(有時稱為 子 表)具有查找列,允許儲存對主表(有時稱為 父 表)中列的引用。 N:1 關係只是從相關資料表檢視的 1:N 關係。
表格關聯行為
相關資料表的行為很重要,因為它們有助於確保資料完整性,並可以為您自動化商業程序。
保留資料完整性
有些資料表的存在是為了支援其他資料表。 它們本身沒有意義。 他們通常會有必需的查閱欄,以連結至其支援之主要表格。 刪除主要資料列時會發生什麼事?
您可以使用關聯行為,依據您的商務規則來定義相關列會發生的情況。 其他資訊: 新增進階關聯性行為
自動化商物程序
假設您有一位新銷售人員,並且想要為他們分配一些目前分配給另一位銷售人員的現有帳戶。 每個客戶資料列可能都有一些與其相關聯的工作活動。 您可以輕鬆找到要重新分配的活躍帳戶並將其分配給新的銷售人員。 但是,與帳戶相關聯的任何任務活動應該如何處理? 是否要開啟每個工作,並決定是否也應將這些工作指派給新的銷售人員? 大概不是這樣。 相反地,您可以讓關聯自動套用至一些標準規則。 這些規則僅適用於與您要重新指派的帳戶相關聯的工作列。 您的選項如下:
- 重新指派所有使用中工作。
- 重新指派所有工作。
- 不重新指派工作。
- 請將目前分配給帳戶前擁有者的所有任務重新分配。
關聯可以控制如何對向下至任何相關表格資料列之主要表格資料列串聯的資料列執行動作。
Behaviors
當某些動作發生時,可以套用數種行為。
| 行為 | Description |
|---|---|
| 串聯使用中 | 對所有使用中相關表格資料列執行動作。 |
| 串聯全部 | 對所有相關表格資料列執行動作。 |
| 不串聯 | 不執行任何動作。 |
| 移除連結 | 移除所有相關資料列的查找值。 |
| 限制 | 防止在相關表格列存在時刪除主表格列。 |
| 串聯使用者擁有的 | 對同一使用者擁有的所有相關表格列執行與主要表格列相同的動作。 |
行動
這些是可能觸發某些行為的動作:
| 資料行 | Description | 選項 |
|---|---|---|
| 指派 | 當主要資料表資料列指派給其他人時,會發生什麼事? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
| 重設上層 | 當父系關係中相關資料表的查閱值變更時,應該會發生什麼事? 其他資訊: 父表關聯性 |
串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
| 共用 | 共用主表列時應該會發生什麼事? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
| 刪除 | 刪除主表列時應該會發生什麼事? | 串聯全部 刪除鏈接 限制 |
| 不共用 | 主表格中的列取消共用時會發生什麼事? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
| 合併 | 合併主表列時應該會發生什麼事? | 串聯全部 不串聯 |
| 彙總檢視 | 什麼是與此關聯相關之彙總檢視表所需的行為? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
備註
在下列情況中,不會執行指派、刪除、合併及重設上層動作:
- 如果原始父列和請求的動作包含相同的值。 範例: 嘗試觸發指派,並選取已經是資料列負責人的連絡人。
- 嘗試在已執行串聯動作的父列上執行動作。
執行指派時,當重新指派發生,會自動停用資料列上目前活動的任何工作流程或商務規則。 如果資料列的新擁有者想要繼續使用工作流程或業務規則,則必須重新啟用該規則。
父資料表關係
符合 1:N 關聯性的每對資料表之間可以有多個 1:N 關聯性。 但是,通常只有其中一項關聯可視為上層表格關聯。
上層表格關聯是指,下表的 上層 資料行其中一個串聯選項為 True 的任何 1:N 表格關聯。
| Action | 上層 | 非父母 |
|---|---|---|
| 指派 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
| 刪除 | 串聯全部 | RemoveLink 限制 |
| 重設上層 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
| 共用 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
| 不共用 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
例如,如果您建立新的自訂表格並新增 1:N 表格關聯,其中客戶表格中您的自訂表格是相關表格,您就可以為該表格關聯設定動作,以使用 上層 資料行中的選項。 如果您稍後新增另一個他 1:N 資料行關聯,其中您的自訂資料行為參考資料行,那麼您只能設定動作來使用 非上層 資料行中的選項。
通常,這表示每個資料表配對只有一個父系關係。 在某些情況下,相關表上的查詢可能允許與多種表類型建立關聯。
例如,如果資料表有可以參考連絡人或客戶資料表的客戶查詢。 就會有兩個不同的上層 1:N 表格關聯。
任何活動表格都會針對可以使用相關查詢資料行建立關聯的表格提供一組類似的上層表格關聯。
您可設定之行為的限制
基於上層關聯的考量,當您定義資料表關聯時,有一些限制應注意。
- 在與所串聯之相關系統表格的關聯中,自訂表格不可以是主要表格。 這表示在主要自訂表格與相關系統表格之間,不可以具有動作設定為 串聯全部、串聯使用中 或 串聯使用者擁有的 的關聯。
- 如果該關係中的相關資料表已作為另一個關係中的相關資料表存在,且任何動作都設定為「聯級全部」、「聯級作用中」或「聯級使用者擁有」,則任何新關係都不能將任何動作設定為「聯級全部」、「聯級作用中」或「聯級使用者擁有」。 這樣可避免建立多個上層關聯的關聯。
繼承的存取權限清理
當您要提供對相關表格中資料列的存取權時,使用上層和共用串聯行為會很有用。 但是,流程或設計可能會發生變更,需要變更串聯行為設定。
當資料表關係使用 重設父系 或 共用 ,且階層式行為變更為 不進行串聯 時,資料表關係將防止任何新的許可權變更串聯至相關的子資料表。 此外,當串聯行為處於使用中所授予的繼承權限,必須被撤銷。
繼承的存取權限清除是一項系統作業,用於清理在串聯行為變更為不級聯之後保留的舊繼承存取權限。 此清除不會影響任何直接授與資料表存取權的使用者,但會移除僅透過繼承獲得存取權之任何人的存取權。
以下是繼承存取權限清除的運作方式:
- 識別並收集與更新後的上層具有串聯關聯的所有表格。
- 識別並收集透過繼承存取權授與相關資料表存取權的使用者。
- 檢查是否有被授予相關表格直接存取權的使用者,並將其從集合中移除。
- 移除收集表格上收集使用者的繼承存取。
清除執行之後,僅因為階層式功能而能夠存取相關資料表的使用者無法再存取資料列,以確保更高的安全性。 在某些情況下,清除可能無法成功。 深入瞭解如何清除繼承的存取權