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