Sdílet prostřednictvím


Relace mezi tabulkami Microsoft Dataverse

Relace mezi tabulkami v Microsoft Dataverse definují způsoby, kterými lze řádky tabulky přidružit k řádkům z jiných tabulek nebo stejné tabulky. Existují dva typy relací mezi tabulkami:

Vztahy 1:N

V relaci 1:N tabulky může být mnoho referenčních (souvisejících) řádků tabulky přidruženo k jednomu primárnímu řádku tabulky. Odkazovaný řádek tabulky se někdy označuje jako "nadřazený" a řádky tabulky, které odkazují, se označují jako "podřízené". Relace M:1 je pouze perspektiva dítěte relace 1:N.

Například ve školním scénáři může v jedné třídě probíhat více kurzů, takže tabulka tříd by měla relaci jedna ku mnoha s tabulkou kurzů.

Mnoho-k-mnoho vztahy

V relaci mezi tabulkami M:N může být mnoho řádků tabulky přidruženo k mnoha dalším řádkům tabulky. Řádky spojené prostřednictvím relace M:N lze považovat za rovnocenné a relace je reciproční.

Například ve stejném školním scénáři zmíněném dříve se jeden student může zaregistrovat do více kurzů a každý kurz může mít více studentů. Tento typ relace umožňuje složitější přidružení dat a spravuje se pomocí Power Apps v Dataverse.

Jak fungují relace v Dataverse

Relace mezi tabulkami definují, jak můžou řádky tabulky vzájemně souviset v Dataverse. Na nejjednodušší úrovni vytvoří přidání vyhledávacího sloupce do tabulky novou relaci 1:N (1:N) mezi těmito dvěma tabulkami a umožní vám umístit tento vyhledávací sloupec do formuláře. Ve vyhledávacím sloupci můžou uživatelé přidružit několik podřízených řádků této tabulky k jednomu nadřazenému řádku tabulky.

Kromě pouhého definování toho, jak můžou řádky souviset s jinými řádky, poskytují relace mezi tabulkami 1:N také data, která řeší následující otázky:

  • Když odstraním řádek, měly by se odstranit i všechny řádky související s tímto řádkem?
  • Když přiřadím řádek, musím také přiřadit všechny řádky související s tímto řádkem novému vlastníkovi?
  • Jak můžu proces zadávání dat zjednodušit při vytváření nového souvisejícího řádku v kontextu existujícího řádku?
  • Jak by lidé, kteří si prohlížejí řádek, mohli zobrazit přidružené řádky?

Tabulky se také můžou účastnit relace N:N (M:N), kde je možné vzájemně přidružit libovolný počet řádků pro dvě tabulky.

Rozhodněte se, jestli se mají používat relace mezi tabulkami nebo připojení.

Relace mezi tabulkami jsou metadata, která provádějí změny v Dataverse. Tyto relace umožňují dotazům efektivně načítat související data. Relace mezi tabulkami slouží k definování formálních relací, které definují tabulku nebo které může používat většina řádků. Například příležitost bez potenciálního zákazníka by nebyla užitečná. Tabulka příležitostí v Dynamics 365 for Sales má také relaci N:N s tabulkou konkurentů, která je dostupná také v Dynamics 365 for Sales. To umožňuje přidání více konkurentů do příležitosti. Měli byste zachytit tato data a vytvořit report, který zobrazuje konkurenci.

Existují i další méně formální druhy vztahů mezi řádky, které se nazývají připojení. Může být například užitečné vědět, jestli jsou dva kontakty manželé, nebo třeba přátelé mimo práci, nebo třeba kontakt používaný k práci pro jiný účet. Většina firem nebude generovat reporty pomocí tohoto typu informací ani vyžadovat jejich zadání, takže pravděpodobně není vhodné vytvářet relace tabulek. Další informace: Konfigurace propojovacích rolí

Typy relací mezi tabulkami

Při zobrazení relací v Power Apps si můžete myslet, že existují tři typy relací mezi tabulkami. Ve skutečnosti existují pouze dva, jak je znázorněno v následující tabulce.

Typ vztahu Description
1:N (Jeden-na-mnoho) Relace tabulky, kde jeden řádek Primární tabulky může být přidružen k mnoha řádkům Související tabulky pomocí vyhledávacího sloupce v související tabulce.

Při prohlížení primárního řádku tabulky můžete zobrazit seznam souvisejících řádků tabulky, které jsou k ní přidružené.

Na portálu Power Apps představuje aktuální tabulka primární tabulku.
N:N (Mnoho na mnoho) Relace mezi tabulkami, která závisí na speciální tabulce relace, někdy označované jako tabulka Intersect, takže mnoho řádků jedné tabulky může souviset s mnoha řádky jiné tabulky.

Při prohlížení řádků obou tabulek v relaci N:N můžete zobrazit seznam všech řádků druhé tabulky, které s ní souvisejí.

Typ relace N:1 (many-to-one) existuje v uživatelském rozhraní, protože návrhář zobrazuje pohled seskupený podle tabulek. Relace 1:N ve skutečnosti existují mezi tabulkami a odkazují na každou tabulku jako primární nebo aktuální tabulku nebo související tabulku. Související tabulka, někdy označovaná jako podřízená tabulka, má vyhledávací sloupec, který umožňuje uložit odkaz na řádek z primární tabulky, někdy označovanou jako nadřazená tabulka. Relace N:1 je jen relace 1:N zobrazená ze související tabulky.

Chování vztahů tabulky

Vlastnosti souvisejících tabulek jsou důležité, protože pomáhají zaručit integritu dat a mohou automatizovat obchodní procesy.

Zachování integrity dat

Některé tabulky existují pro podporu jiných tabulek. Nedávají smysl samy o sobě. Obvykle mají požadovaný vyhledávací sloupec pro propojení s primární tabulkou, kterou podporují. Co by se mělo stát při odstranění primárního řádku?

Vztahové chování můžete použít k definování toho, co se stane se souvisejícími řádky dle pravidel vaší firmy. Více informací: Přidání rozšířeného chování vztahu

Automatizace obchodních procesů

Řekněme, že máte nového prodejce a chcete mu přiřadit několik stávajících účtů, které jsou aktuálně přiřazené jinému prodejci. Každý řádek účtu může mít přiřazeny množství úkolových aktivit. Aktivní účty, které chcete znovu přiřadit, můžete snadno vyhledat a přiřadit je novému prodejci. Co by se ale mělo stát u některé z aktivit úkolů přidružených k účtům? Chcete otevřít každý úkol a rozhodnout, zda byl měl být také přiřazen novému prodejci? Pravděpodobně nikoli. Místo toho můžete vztah nechat automaticky použít několik standardních pravidel. Tato pravidla platí jenom pro řádky úkolů přidružené k účtům, které znovu přiřazujete. Máte následující možnosti:

  • Znovu přiřadit všechny aktivní úkoly.
  • Znovu přiřadit všechny úkoly.
  • Nepřiřadit znovu žádný z úkolů.
  • Znovu přiřaďte všechny úkoly, které jsou aktuálně přiřazeny bývalému vlastníkovi účtů.

Relace může řídit, jak se akce provedené na řádku primárního řádku tabulky kaskádovitě rozdělí na všechny související řádky tabulky.

Behaviors

Existuje několik druhů chování, které lze použít, když dojde k určitým akcím.

Chování Description
Přenést aktivní Proveďte akci na všech aktivních řádcích relevantních tabulek.
Přenést vše Proveďte akci na všech souvisejících řádcích tabulky.
Nepřenášet Neprovádět žádnou akci.
Odebrat propojení Odeberte hodnotu vyhledávání pro všechny související řádky.
Omezit Zabrání odstranění primárního řádku tabulky, pokud existují související řádky tabulky.
Přenést uživatelské Proveďte akci pro všechny související řádky tabulky vlastněné stejným uživatelem jako primární řádek tabulky.

Akce

Toto jsou akce, které můžou aktivovat určité chování:

Sloupec Description Možnosti
Přiřadit Co by se mělo stát, když je primární řádek tabulky přiřazený někomu jinému? Kaskádovat vše
Aktivace kaskády
Kaskádové vlastnictví uživatele
Žádná kaskáda
Nadřadit Co by se mělo stát, když se změní vyhledávací hodnota související tabulky ve vztahu rodičovském?
Další informace: Vztahy mezi tabulkami rodičů
Kaskádovat vše
Aktivace kaskády
Kaskádové vlastnictví uživatele
Žádná kaskáda
Sdílet Co by se mělo stát při sdílení primárního řádku tabulky? Kaskádovat vše
Aktivace kaskády
Kaskádové vlastnictví uživatele
Žádná kaskáda
Vymazat Co by se mělo stát při odstranění primárního řádku tabulky? Kaskádovat vše
Odebrat odkaz
Omezit
Zrušit sdílení Co by se mělo stát, když se primární řádek tabulky přestane sdílet? Kaskádovat vše
Aktivace kaskády
Kaskádové vlastnictví uživatele
Žádná kaskáda
Sloučit Co by se mělo stát při sloučení primárního řádku tabulky? Kaskádovat vše
Žádná kaskáda
Souhrnné zobrazení Jaké je požadované chování souhrnného zobrazení přidruženého k tomuto vztahu? Kaskádovat vše
Aktivace kaskády
Kaskádové vlastnictví uživatele
Žádná kaskáda

Poznámka:

Akce přiřazení, odstranění, sloučení a reparentování se nespouštějí v následujících situacích:

  • Pokud původní nadřazený řádek a požadovaná akce obsahují stejné hodnoty. Příklad: Pokus o vyvolání přiřazení a výběru kontaktu, který je již vlastníkem daného řádku.
  • Pokoušíte se provést akci na nadřazeném řádku, který již spouští kaskádovou akci.

Při provádění přiřazení se automaticky deaktivují všechny pracovní postupy nebo obchodní pravidla, které jsou aktuálně aktivní na řádcích, když dojde k opětovnému přiřazení. Nový vlastník řádku musí pracovní postup nebo obchodní pravidlo znovu aktivovat, pokud ho chce dál používat.

Relace rodičovské tabulky

Každá dvojice tabulek, které mají nárok na relaci 1:N, mezi nimi může mít více relací 1:N. Obvykle pouze jedna z těchto relací může být považována za relaci mateřské tabulky.

Rodičovské relace jsou libovolné relace tabulky 1:N, kde je splněna jedna z možností kaskádování ve sloupci Rodičovské v následující tabulce.

Činnost Nadřazený Ne rodiče
Přiřadit Kaskádovat vše
Kaskádové vlastnictví uživatele
Aktivace kaskády
Žádná kaskáda
Vymazat Kaskádovat vše RemoveLink
Omezit
Nadřadit Kaskádovat vše
Kaskádové vlastnictví uživatele
Aktivace kaskády
Žádná kaskáda
Sdílet Kaskádovat vše
Kaskádové vlastnictví uživateli
Aktivace kaskády
Žádná kaskáda
Zrušit sdílení Kaskádovat vše
Kaskádové vlastnictví uživatele
Aktivace kaskády
Žádná kaskáda

Pokud například vytvoříte novou vlastní tabulku a přidáte relaci tabulky 1:N s tabulkou účtu, ve které je vaše vlastní tabulka související tabulkou, můžete pro tuto relaci tabulky nakonfigurovat akce tak, aby používaly možnosti ve sloupci Rodiče . Pokud později přidáte další relaci tabulky 1:N s vlastní tabulkou jako odkazující tabulkou, můžete akce nakonfigurovat pouze tak, že použijete možnosti ve sloupci Nepolopříbuzenský.

Obvykle to znamená, že u každého páru tabulek existuje pouze jeden rodičovský vztah. V některých případech může vyhledávání v související tabulce umožnit relaci s více typy tabulek.

Například pokud má tabulka vyhledávání zákazníka, které může odkazovat buď na tabulku kontaktu, nebo na tabulku účtu. Existují dvě samostatné rodičovské vztahy mezi tabulkami 1:N.

Každá tabulka aktivit má podobnou sadu relací nadřazených tabulek pro tabulky, které lze přidružit pomocí vyhledávacího sloupce týkajícího se.

Omezení, která lze pro chování nastavit

Vzhledem k tomu, že vztahy rodičů mají určitá omezení, měli byste mít na paměti při definování relací mezi tabulkami.

  • Vlastní tabulka nemůže být primární tabulkou v relaci se související systémovou tabulkou, která je kaskádově propojená. To znamená, že nemůžete mít relaci mezi primární vlastní tabulkou a související systémovou tabulkou, pokud je některá akce nastavena na Kaskádovat vše, Kaskádovat aktivní nebo Kaskádovat podle vlastnictví uživatele.
  • Žádná nová relace nemůže mít žádnou akci nastavenou na Kaskádové vše, Kaskádové aktivní nebo Kaskádové vlastněné uživatelem , pokud související tabulka v této relaci již existuje jako související tabulka v jiné relaci, která má jakoukoli akci nastavenou na Kaskádové vše, Kaskádová aktivní nebo Kaskádová vlastněná uživatelem. To zabraňuje vztahům, které vytvářejí vztahy s více nadřazenými položkami.

Vyčištění zděděných přístupových práv

Použití kaskádových chování reparent a Share jsou užitečné, když chcete poskytnout přístup k řádkům napříč souvisejícími tabulkami. Může ale dojít ke změně procesu nebo návrhu, která vyžaduje změnu kaskádového nastavení chování.

Pokud relace mezi tabulkami používá Reparent nebo Share a kaskádové chování se změní na Žádné kaskády, relace tabulky zabrání kaskádovému šíření nových změn oprávnění na související podřízené tabulky. Kromě toho se musí odvolat zděděná oprávnění, která byla udělena, zatímco kaskádové chování bylo aktivní.

Vyčištění zděděných přístupových práv je systémová úloha, která vyčistí starší zděděná přístupová práva, která zůstávají po změně kaskádového chování na Cascade None. Toto vyčištění nemá vliv na uživatele, kterému byl přímo udělen přístup k tabulce, ale odebere přístup všem uživatelům, kteří přístup obdrželi pouze prostřednictvím dědění.

Takto funguje vyčištění zděděných přístupových práv:

  1. Identifikuje a shromažďuje všechny tabulky, které byly v kaskádové relaci s aktualizovaným nadřazeným objektem.
  2. Identifikuje a shromažďuje uživatele, kterým byl udělen přístup ke souvisejícím tabulkám prostřednictvím zděděného přístupu.
  3. Kontroluje uživatele, kteří dostali přímý přístup ke související tabulce, a odebere je z kolekce.
  4. Odebere zděděný přístup shromážděných uživatelů v shromážděných tabulkách.

Po vyčištění už uživatelé, kteří měli přístup k souvisejícím tabulkám jenom kvůli kaskádové funkci, už nemají přístup k řádkům a zajišťují větší zabezpečení. Existují případy, kdy vyčištění nemusí být úspěšné. Další informace o vyčištění zděděného přístupu

Viz také

Monitorování systémových úloh
Vytvoření a úprava relací 1:N (jedna ku mnoha) nebo N:1 (mnoho k jedné)
Vytvořte relace typu mnoho na mnoho (N:N) mezi tabulkami