Vztahy mezi tabulkami

Vztahy mezi tabulkami definují, jak mohou být řádky v databázi navzájem propojeny. Na nejjednodušší úrovni vytvoří přidání vyhledávacího sloupce do tabulky nový vztah mezi dvěma tabulkami 1:N a umožňuje umístit vyhledávací sloupec ve formuláři. Pomocí vyhledávacího sloupce mohou uživatelé přidružit několik podřízených řádků této tabulky jednomu řádku nadřazené tabulky.

Kromě jednoduchého definování, jak řádky mohou být propojeny s jinými řádky, poskytují vztahy 1:N mezi tabulkami také data k vyřešení těchto otázek:

  • Když odstraním řádek, měl bych odstranit také všechny řádky, které s ním souvisejí?
  • Když přiřadím řádek, je nutné přiřadit novému vlastníkovi všechny řádky vztahující se k řádku?
  • Jak lze zjednodušit proces zadávání dat při vytváření nového souvisejícího řádku v rámci existujícího řádku?
  • Jak by se měly uživatelům při prohlížení řádku zobrazit přidružené řádky?

Tabulky mohou být také ve vztazích N:N, kde může být vzájemně propojen libovolný počet řádků pro dvě tabulky.

Rozhodnutí, zda použít vztahy mezi tabulkami nebo propojení

Vztahy mezi tabulkami jsou metadata, která provádějí změny v databázi. Tyto vztahy umožňují dotazům efektivně načítat související data. Pomocí vztahů mezi tabulkami lze definovat formální vztahy, které definují tabulku nebo které může použít většinu řádků. Například příležitost bez potenciálního zákazníka by nebyla užitečná. Tabulka Příležitost má vztah N:N také s tabulkou Konkurence. To umožňuje přidat více konkurentů k příležitosti. Můžete chtít zachytit tato data a vytvořit sestavu, která zobrazuje konkurenty.

Existují další typy méně formálních vztahů mezi řádky, které se nazývají propojení. Například může být užitečné vědět, zda jsou dva kontakty manželé nebo zda jsou přátelé mimo práci nebo případně zda kontakt pracoval pro jiný obchodní vztah. Většina podniků nebude generovat sestavy pomocí těchto informací ani vyžadovat, aby byly tyto údaje zadány, takže se zřejmě nevyplatí vytvářet vztahy mezi tabulkami. Další informace: Konfigurace rolí připojení

Typy vztahů mezi tabulkami

Když se podíváte do průzkumníku řešení, zřejmě si budete myslet, že existují tři typy vztahů mezi tabulkami. Ve skutečnosti existují pouze dva, jak je znázorněno v následující tabulce.

Typ vztahu Popis
1:N Vztah mezi tabulkami, kde jeden řádek tabulky pro Primární tabulku lze přiřadit s mnoha dalšími řádky Související tabulky kvůli vyhledávacímu sloupci v související tabulce.

Při prohlížení řádku primární tabulky se zobrazí seznam řádků související tabulky, které jsou s ním spojeny.

V portálu Power Apps představuje Aktuální tabulka primární tabulku.
N:N Vztah mezi tabulkami, který závisí na speciální vztahové tabulce, někdy nazývané průnikové tabulce, kdy mnoho řádků z jedné tabulky může souviset s mnoha řádky z jiné tabulky.

Při zobrazení řádků tabulky ve vztahu N:N se zobrazí seznam všech řádků jiné tabulky, které spolu souvisí.

Typ vztahu N:1 existuje v uživatelském rozhraní průzkumníku řešení, protože návrhář zobrazuje zobrazení seskupené podle tabulek. Vztahy 1:N ve skutečnosti existují mezi tabulkami a odkazují na jednotlivé tabulky, jako je primární/aktuální tabulka nebo související tabulka. Související tabulka, někdy též nazývaná podřízená tabulka, má vyhledávací sloupec, které umožňuje ukládání odkazů na řádek z primární tabulky, někdy nazývané nadřazená tabulka. Vztah N:1 je jednoduše vztah 1:N zobrazený z pohledu související tabulky.

Chování vztahu mezi tabulkami

Chování pro související tabulky je důležité, protože pomáhá zajistit integritu dat a může automatizovat obchodní procesy vaší společnosti.

Zachování integrity dat

Některé tabulky existují pro podporu jiných tabulek. Samostatně nemají smysl. Obvykle budou mít požadovaný vyhledávací sloupec pro propojení na primární tabulku, kterou podporují. Co by mělo nastat při odstranění primárního řádku?

Chování vztahu můžete použít k definování toho, co se stane se souvisejícími řádky, a to na základě pravidel pro vaši firmu. 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 existujících obchodních vztahů, které jsou aktuálně přiřazeny jinému prodejci. Každý řádek obchodního vztahu může mít několik přidružených aktivit úkolu. Můžete snadno vyhledat aktivní obchodní vztahy, které chcete znovu přiřadit, a přiřadit je novému prodejci. Ale co by mělo nastat pro všechny aktivity úkolů, které jsou spojené s obchodními vztahy? 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 se vztahují pouze na řádky úkolu spojené s obchodními vztahy, 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řadit všechny úkoly, které jsou aktuálně přiřazeny předchozímu vlastníkovi obchodních vztahů.

Pomocí vztahu lze určit, jak jsou akce prováděné u řádku primární tabulky přenášeny dále do všech záznamů související tabulky.

Chování

Existuje několik typů chování, které lze použít při výskytu určité akce.

Chování Popis
Přenést aktivní Provést akci pro všechny aktivní řádky související tabulky.
Přenést vše Provést akci pro všechny řádky související tabulky.
Nepřenášet Neprovádět žádnou akci.
Odebrat propojení Odeberte hodnotu vyhledávání pro všechny související řádky.
Omezit Zabránit odstranění řádku primární tabulky, pokud existují řádky související tabulky.
Přenést uživatelské Provést akci pro všechny řádky související tabulky vlastněné stejným uživatelem, který vlastní řádek primární tabulky.

Akce

Jedná se o akce, které mohou vyvolat určité chování:

Sloupec Popis Možnosti
Přiřadit Co by mělo nastat v případě přiřazení řádku primární tabulky někomu jinému? Přenést vše
Přenést aktivní
Přenést vlastněné uživatelem
Nepřenášet
Nadřadit Co by mělo nastat, když se změní hodnota vyhledávání související tabulky v nadřazeném vztahu?
Další informace: Vztahy nadřazenosti mezi tabulkami
Přenést vše
Přenést aktivní
Přenést vlastněné uživatelem
Nepřenášet
Sdílet Co by mělo nastat při sdílení řádku primární tabulky? Přenést vše
Přenést aktivní
Přenést vlastněné uživatelem
Nepřenášet
Odstranit Co by mělo nastat při odstranění řádku primární tabulky? Přenést vše
Odebrat odkaz
Omezit
Zrušit sdílení Co by mělo nastat při ukončení sdílení řádku primární tabulky? Přenést vše
Přenést aktivní
Přenést vlastněné uživatelem
Nepřenášet
Sloučit Co by mělo nastat při sloučení řádků primární tabulky? Přenést vše
Nepřenášet
Zobrazení souhrnu Jaké je požadované chování zobrazení souhrnu přidruženého k tomuto vztahu? Přenést vše
Přenést aktivní
Přenést vlastněné uživatelem
Nepřenášet

Poznámka

Přiřazení, odstranění, sloučení a opakované akce nebudou provedeny v následujících situacích:

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

Poznámka

Při provádění přiřazení budou jakékoli pracovní toky nebo obchodní pravidla, která jsou aktuálně aktivní na řádcích, automaticky deaktivována, když dojde k opětovnému přiřazení. Nový vlastník řádku bude muset znovu aktivovat pracovní postup nebo obchodní pravidlo, pokud jej chce nadále používat.

Nadřazený vztah mezi tabulkami

Každá dvojice tabulek, které mohou mít vztah 1:N, mohou mít více vztahů 1:N mezi sebou. Obvykle však pouze jeden z těchto vztahů lze považovat za nadřazený vztah mezi tabulkami.

Nadřazený vztah mezi tabulkami je jakýkoli vztah 1:N mezi tabulkami, kde jedna z možností přenosu ve sloupci Nadřazený v následujíc tabulce je nastavena na true.

Akce Nadřazený Není nadřazený
Přiřadit Přenést vše
Přenést vlastněné uživatelem
Přenést aktivní
Nepřenášet
Odstranit Přenést vše RemoveLink
Omezit
Nadřadit Přenést vše
Přenést vlastněné uživatelem
Přenést aktivní
Nepřenášet
Sdílet Přenést vše
Přenést vlastněné uživatelem
Přenést aktivní
Nepřenášet
Zrušit sdílení Přenést vše
Přenést vlastněné uživatelem
Přenést aktivní
Nepřenášet

Například pokud vytvoříte novou vlastní tabulku a přidáte vztah tabulky 1:N s tabulkou obchodního vztahu, kde je vaše vlastní tabulka související tabulkou, můžete nakonfigurovat akce pro daný vztah mezi tabulkami pro použití možností ve sloupci Nadřazený. Pokud později přidáte jiný vztah mezi tabulkami 1:N s vlastní tabulkou jako referenční tabulkou, můžete konfigurovat pouze akce pro použití možností ve sloupci Není nadřazený.

Obvykle to znamená, že pro každou dvojici tabulek existuje pouze jeden vztah nadřazenosti. Existují některé případy, kde může vyhledávání na související tabulce povolit vztahu mít více než jeden typ tabulky.

Například pokud má tabulka vyhledávání zákazníků, které se může odkazovat buď na tabulku kontaktu nebo obchodního vztahu. Existují dva samostatné nadřazené vztahy mezi tabulkami 1:N.

Jakákoliv tabulka aktivity má podobnou sadu nadřazených vztahů mezi tabulkami pro tabulky, které lze přiřadit pomocí vyhledávacího sloupce.

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

Z důvodu nadřazených vztahů existují určitá omezení, které je třeba vzít v úvahu při definování vztahů mezi tabulkami.

  • Vlastní tabulka nemůže být primární tabulkou ve vztahu se související systémovou tabulkou, u které je povolen přenos. To znamená, že nemůžete vytvořit vztah s jakoukoli akcí nastavenou na hodnotu Přenést vše, Přenést aktivní nebo Přenést uživatelské mezi primární vlastní tabulkou a související systémovou tabulkou.
  • U žádného nového vztahu nemůže být žádná akce nastavená na hodnotu Přenést vše, Přenést aktivní nebo Přenést uživatelské v případě, že související tabulka v tomto vztahu již existuje jako související tabulka v jiném vztahu, jehož libovolná akce je nastavena na hodnotu Přenést vše, Přenést aktivní nebo Přenést uživatelské. 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ého chování Nadřadit a Sdílet je užitečné, pokud chcete poskytnout přístup k řádkům napříč souvisejícími tabulkami. Může však dojít ke změně v procesu nebo návrhu, která vyžaduje změnu nastavení kaskádového chování.

Když relace tabulky používá Nadřadit nebo Sdílet a kaskádové chování se změní na Nepřenášet, relace tabulky zabrání kaskádovým změnám nových oprávnění v souvisejících podřízených tabulkách. Kromě toho musí být zrušena zděděná oprávnění, která byla udělena, když bylo aktivní kaskádové chování.

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ůstanou po změně kaskádového chování na Nepřenášet. Toto vyčištění neovlivní žádného uživatele, kterému byl přímo udělen přístup k tabulce, ale odebere přístup každému, kdo přístup získal pouze prostřednictvím dědičnosti.

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ém vztahu s aktualizovaným nadřazeným prvkem.
  2. Identifikuje a shromažďuje uživatele, kterým byl udělen přístup k souvisejícím tabulkám prostřednictvím zděděného přístupu.
  3. Zkontroluje uživatele, kteří dostali přímý přístup k související tabulce a odebere je z kolekce.
  4. Odebere zděděný přístup pro shromážděné uživatele ve shromážděných tabulkách.

Po spuštění čištění už uživatelé, kteří měli přístup k souvisejícím tabulkám pouze z důvodu kaskádové funkce, již nebudou moci přistupovat k řádkům, což zajistí větší bezpečnost. Existují případy, kdy čištění nemusí být úspěšné. Další informace o tom, jak vyčistit zděděný přístup

Viz také

Sledování systémových úloh
Vytvoření a úprava vztahů 1:N nebo N:1
Vytvoření přehledu vztahů mezi tabulkami N:N

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).