表格關聯性
表格關聯定義資料列在資料庫中彼此關聯的方式。 最起碼,將查詢資料行新增至實體會在兩個表格之間建立新的 1:N (一對多) 關聯,並允許您將查詢資料行置入表單中。 使用者可以透過查詢資料行,將該表格的多個 下層 資料列關聯到單一 上層 表格資料列。
在定義資料列如何與其他資料列相關之外,1:N 資料表關聯也提供處理下列問題的資料:
- 當我刪除資料列時,是否也會刪除任何與該資料列相關的資料列?
- 當我指派資料列時,是否也必須將所有與該資料列相關的資料列指派給新的負責人?
- 當我在現有資料列的內容中建立新的相關資料列時,如何簡化資料輸入程序?
- 檢視資料列的人員要如何才能檢視相關聯的資料列?
表格也可以參與 N:N (多對多) 關聯,其中兩個表格的任意數目資料列可以彼此關聯。
決定要使用的是表格關聯還是關係
表格關聯是對資料庫進行變更的中繼資料。 這些關聯允許查詢以有效率的方式擷取相關資料。 使用資料表關聯來定義可定義資料表或可供大多數資料列使用的正式關聯。 例如,沒有潛在客戶的商機不實用。 商機資料表也與競爭者資料表有 N:N 關聯。 這允許將多個競爭者新增至商機。 您可能會想要擷取這個資料,並建立顯示競爭者的報表。
在資料列之間還有其他種類較不正式的關聯,稱為 關係。 例如,知道兩個連絡人是否結婚,或兩人在工作外是否為朋友,或某個連絡人過去為另一個客戶工作,可能會有用。 大部分公司不會使用這種資訊產生報表,也不會要求將該資訊輸入,因此可能不值得建立表格關聯。 其他資訊:設定關係角色
表格關聯類型
當您查看方案總管時,您可能認為有三種類型的表格關聯。 如下表所示,實際上只有兩種。
關聯類型 | 描述 |
---|---|
1:N (一對多) | 一種資料表關聯由於相關資料表上的查詢資料列,主要資料表 的資料表資料列可以關聯至其他許多 相關資料表 資料列。 檢視主要表格資料列時,您可以看到與其相關的有關表格資料列清單。 在 Power Apps 入口網站中,目前表格 代表主要表格。 |
N:N (多對多) | 依存於特殊 關聯資料表 的資料表關聯,有時稱為 [交集] 資料表,因此一個資料表的許多資料列可以和另一個資料表的許多資料列有關聯。 檢視 N:N 關聯中任一表格的資料列時,您可以看到與其相關之另一個表格的所有資料列清單。 |
由於設計工具會向您顯示依表格群組的檢視,因此 N:1 (多對一) 關聯類型存在於使用者介面。 1:N 關聯實際上存在於表格 之間,而且個別表格不是稱為 主要/目前表格,就是稱為 相關表格。 相關表格 (有時稱為 下層 表格) 含有查詢資料行,允許儲存主要實體 (有時稱為 上層 表格) 中資料列的參考。 從相關表格來檢視,N:1 關聯就是 1:N 關聯。
表格關聯行為
表格關聯的行為非常重要,因為有助於確保資料完整性,而且可以自動化您公司的商務程序。
保留資料完整性
有些資料表是為了支援其他資料表而存在。 單獨使用這些實體沒有意義。 通常會有必要的查詢資料行以連結至其所支援的主要表格。 刪除主要資料列時,應該要發生什麼情況?
您可以使用關聯行為,依據您的商務規則來定義相關列會發生的情況。 其他資訊:新增進階關聯行為
自動化商物程序
假設有一個新的銷售人員,您想要將目前已指派給另一個銷售人員的數個現有客戶指派給這個人員。 每個客戶資料列可能都有一些與其相關聯的工作活動。 您可以輕易找出要重新指派的現有客戶,並將它們指派給新的銷售人員。 但對於任何與客戶相關聯的工作活動,應如何處理? 是否要開啟每個工作,並決定是否也應將這些工作指派給新的銷售人員? 大概不是這樣。 相反地,您可以讓關聯自動套用至一些標準規則。 這些規則只會套用至與您要重新指派之客戶相關的工作資料列。 您的選項如下:
- 重新指派所有使用中工作。
- 重新指派所有工作。
- 不重新指派工作。
- 重新指派目前指派給前任客戶負責人的所有工作。
關聯可以控制如何對向下至任何相關表格資料列之主要表格資料列串聯的資料列執行動作。
行為
有數種可在特定動作發生時套用的行為。
行為 | 描述 |
---|---|
串聯使用中 | 對所有使用中相關表格資料列執行動作。 |
串聯全部 | 對所有相關表格資料列執行動作。 |
不串聯 | 不執行任何動作。 |
移除連結 | 移除所有相關資料列的查詢值。 |
限制 | 當相關表格資料列存在時,避免主要表格資料列遭到刪除。 |
串聯使用者擁有的 | 對主要表格資料列相同使用者所擁有的所有相關表格資料列執行動作。 |
動作
以下是可觸發特定行為的動作:
資料行 | 描述 | 選項 |
---|---|---|
指派 | 當主要表格資料列指派給其他使用者時,應該會發生什麼情況? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
重設上層 | 當上層關聯中相關表格的查詢值變更時,應該會發生什麼情況? 其他資訊: 上層表格關聯 |
串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
共用 | 共用主要表格資料列時,應該會發生什麼情況? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
刪除 | 刪除主要表格資料列時,應該會發生什麼情況? | 串聯全部 取消連結文章 限制 |
不共用 | 取消共用主要表格資料列時,應該會發生什麼情況? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
合併 | 合併主要表格資料列時,應該會發生什麼情況? | 串聯全部 不串聯 |
彙總檢視 | 什麼是與此關聯相關之彙總檢視表所需的行為? | 串聯全部 串聯使用中 串聯使用者擁有的 不串聯 |
注意
在下列情況中,不會執行指派、刪除、合併及重設上層動作:
- 若原始上層資料列和要求的動作包含相同的值。 範例: 嘗試觸發指派,並選取已經是資料列負責人的連絡人
- 嘗試在已執行串聯動作的上層資料列上執行動作
注意
執行指派時,當重新指派發生,會自動停用資料列上目前活動的任何工作流程或商務規則。 若要繼續使用,則新的資料列負責人必須重新啟動工作流程或商務規則。
上層表格關聯
每一個有資格擁有 1:N 關聯的表格配對之間都可以擁有多個 1:N 關聯。 但是,通常只有其中一項關聯可視為上層表格關聯。
上層表格關聯是指,下表的 上層 資料行其中一個串聯選項為 True 的任何 1:N 表格關聯。
Action | 上層 | 非上層 |
---|---|---|
指派 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
刪除 | 串聯全部 | RemoveLink 限制 |
重設上層 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
共用 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
不共用 | 串聯全部 串聯使用者擁有的 串聯使用中 |
不串聯 |
例如,如果您建立新的自訂表格並新增 1:N 表格關聯,其中客戶表格中您的自訂表格是相關表格,您就可以為該表格關聯設定動作,以使用 上層 資料行中的選項。 如果您稍後新增另一個他 1:N 資料行關聯,其中您的自訂資料行為參考資料行,那麼您只能設定動作來使用 非上層 資料行中的選項。
通常這表示每個表格配對只有一個上層關聯。 在某些情況下,相關資料表上的查詢可能會允許關聯擁有多種類型的資料表。
例如,如果表格有可以參考連絡人或客戶表格的客戶查詢。 就會有兩個不同的上層 1:N 表格關聯。
任何活動表格都會針對可以使用相關查詢資料行建立關聯的表格提供一組類似的上層表格關聯。
您可設定之行為的限制
基於上層關聯的考量,當您定義表格關聯時,有一些限制應注意。
- 在與所串聯之相關系統表格的關聯中,自訂表格不可以是主要表格。 這表示在主要自訂表格與相關系統表格之間,不可以具有動作設定為 串聯全部、串聯使用中 或 串聯使用者擁有的 的關聯。
- 如果新關聯中的相關表格已有任一動作設定為 串聯全部、串聯使用中 或 串聯使用者擁有的 之另一個關聯中的相關表格,則新關聯的任何動作都不可以設定為 串聯全部、串聯使用中 或 串聯使用者擁有的。 這樣可避免建立多個上層關聯的關聯。
繼承的存取權限清除
當您要提供對相關表格中資料列的存取權時,使用上層和共用串聯行為會很有用。 但是,可能會變更程序或設計,因而需要變更串聯行為設定。
當表格關聯使用上層或共用,且串聯行為變更為不串聯時,該表格關聯將阻止任何新的權限變更串聯到相關的子表格。 此外,當串聯行為處於使用中所授予的繼承權限,必須被撤銷。
已繼承的存取權限清除是一種系統作業,會清除串聯行為變更為不串聯後,依舊存在的舊版已繼承存取權限。 這種清除將不影響任何直接被授與表格存取權的使用者,但是任何僅透過繼承獲得存取權之人員的存取權,將會遭到移除。
這是繼承的存取權限清理工作的方式:
- 識別並收集與更新後的上層具有串聯關聯的所有資料表。
- 識別並收集透過繼承存取授與對相關表格的存取權的使用者。
- 檢查被授與對相關表格直接存取權的使用者,並將其從集合中移除。
- 移除收集表格上收集使用者的繼承存取。
執行清理後,僅因串聯功能才能存取相關資料表的使用者,就無法再存取資料列,從而確保更高的安全性。 這裡是清除可能不會成功的案例。 深入了解如何清除已繼承的存取