Tabellrelationer
Tabellrelationer definierar hur rader kan relateras till varandra i databasen. Om du lägger till en uppslagskolumn till en tabell på den enklaste nivån skapas en ny 1:N-relation (en-till-flera-relation) mellan de två tabellerna och gör att du kan placera uppslagskolumnen i ett formulär. I uppslagskolumnen kan användarna koppla flera underordnade rader för tabellen till en enda överordnad tabellrad.
1:N-tabellrelationer definierar inte endast hur rader relateras till andra rader utan tillhandahåller också data för att besvara följande frågor:
- När jag tar bort en rad, ska alla rader som är relaterade till denna rad också tas bort?
- När jag tilldelar en rad; måste jag då också tilldela alla rader som är relaterade till denna rad till den nya ägaren?
- Hur gör jag för att effektivisera datainmatningsprocessen när jag skapar en ny relaterad rad i kontexten för en befintlig rad?
- Hur kan en användare som visar en rad visa associerade rader?
Tabeller kan också ingå i en N till N-relation (många till flera) där ett valfritt antal rader för två tabeller kan vara kopplade till varandra.
Bestämma om tabellrelationer eller anslutningar ska användas
Tabellrelationer är metadata som gör ändringar i databasen. Dessa relationer ger möjlighet för frågor att hämta relaterade data effektivt. Använd tabellrelationer för att definiera formella relationer som definierar tabellen eller den som kan användas för de flesta rader. En affärsmöjlighet utan en potentiell kund är t.ex. inte särskilt användbar. Tabellen Affärsmöjlighet har även en N till N-relation med konkurrenttabell. Detta ger möjlighet att lägga till flera konkurrenter i affärsmöjligheten. Du kanske vill samla in dessa data och skapa en rapport som visar konkurrenterna.
Det finns andra, mindre formella typer av relationer mellan rader som kallas anslutningar. Det kan t.ex. vara bra att veta om två kontakter är gifta, om de kanske är vänner utanför arbetet, eller om en kontakt tidigare har arbetat för ett annat konto. De flesta företag genererar inte rapporter med hjälp av den här typen av information eller kräver att den anges, så det är antagligen inte värt att skapa relationer mellan tabeller. Mer information: Konfigurera anslutningsroller
Typer av tabellrelationer
Du kanske tror att det finns tre typer av relationer mellan tabeller när du använder lösningsutforskaren. Faktiskt finns det endast två, som du ser i följande tabell.
Relationstyp | Beskrivning |
---|---|
1 till N (en-till-många) | En tabellrelation där en tabellrad för den primära tabellen kan associeras med många andra relaterade tabell rader på grund av en uppslagskolumn i den relaterade tabellen. När du visar en primär tabellrad ser du en lista över de relaterade tabellraderna som är associerade med den. På Power Apps‑portalen representerar Aktuell tabell den primära tabellen. |
N till N (många-till-många) | En tabellrelation som är beroende av en speciell relationstabell (även kallad en överlappande tabell), så att många rader i en tabell kan relateras till flera rader i en annan tabell. När du visar rader för varje tabell i en N till N-relation kan du se en lista över alla rader för den andra tabellen som är relaterade till den. |
Relationen N till 1 (många till en) finns i användargränssnittet eftersom designern visar en vy som är grupperad efter tabeller. 1 till N-relationer existerar faktiskt mellan tabeller och refererar till varje tabell som en primär/nuvarande tabell eller en relaterad tabell. Den relaterade tabellen, som ibland kallas för den underordnade tabellen, har en uppslagskolumn som gör det möjligt att lagra en referens till en rad från den primära tabellen, som ibland kallas för den överordnade tabellen. En N till 1-relation är helt enkelt en 1 till N-relation som visas från den relaterade tabellens perspektiv.
Tabellrelationsbeteende
Beteende för relaterade tabeller är viktig eftersom den säkerställer informationens integritet och kan automatisera affärsprocesser för ditt företag.
Bevara dataintegritet
Vissa tabeller finns som stöd för andra tabeller. De har ingen mening på egen hand. De innehåller emellertid vanligtvis en uppslagskolumn för att koppla den primära tabellen som de stöder. Vad ska hända när den primära raden tas bort?
Du kan använda relationstypen för att definiera vad som händer med relaterade rader enligt reglerna för företaget. Mer information: Lägg till avancerade relationsbeteende
Automatisering av affärsprocesser
Anta att du har en ny säljare som du vill tilldela ett antal befintliga konton som för närvarande är tilldelade en annan säljare. Varje kontorad kan ha ett antal associerade uppgiftsaktiviteter. Du kan enkelt hitta de aktiva konton du vill omtilldela och tilldela dem till den nya säljaren. Men vad händer för någon av de uppgiftsaktiviteter som är associerade med kontona? Vill du öppna varje uppgift och besluta om den också ska tilldelas den nya säljaren? Förmodligen inte. I stället kan du låta relationen tillämpa vissa standardregler automatiskt för dig. Dessa regler gäller endast uppgiftsrader som är kopplade till de konton du omtilldelar. Dina alternativ är:
- Omtilldela alla aktiva uppgifter.
- Omtilldela alla uppgifter.
- Omtilldela inte någon uppgift.
- Omtilldela alla aktiviteter som är tilldelade den förra ägaren till kontona.
Relationen kan styra hur åtgärder som utförs på en rad för den primära tabellraden sprids nedåt till relaterade tabellrader.
Beteenden
Det finns flera typer av funktioner som kan användas när vissa åtgärder sker.
Funktion | Beskrivning |
---|---|
Kaskad på aktiva | Utför åtgärden för alla aktiva relaterade tabellrader. |
Kaskad på alla | Utför åtgärden för alla relaterade tabellrader. |
Kaskad på inga | Gör ingenting. |
Ta bort koppling | Ta bort sökvärdet för alla relaterade rader. |
Begränsa | Förhindra att den primära tabellraden tas bort när det finns relaterade tabellrader. |
Kaskad på användarägda | Utför åtgärden för alla relaterade tabellrader som ägs av samma användare som den primära tabellraden. |
Åtgärder
Det är dessa åtgärder som kan utlösa vissa funktioner:
Stående stapel | Beskrivning | Alternativ |
---|---|---|
Tilldela | Vad ska hända när den primära tabellraden tilldelas till någon annan? | Kaskad på alla Kaskad på aktiva Användarägd i kaskad Kaskad på inga |
Ny överordnad | Vad ska hända när sökvärdet för en relaterad tabell i en primär relation ändras? Mer information: Överordnade tabellrelationer |
Kaskad på alla Kaskad på aktiva Användarägd i kaskad Kaskad på inga |
Dela | Vad ska hända när den primära tabellraden delas? | Kaskad på alla Kaskad på aktiva Användarägd i kaskad Kaskad på inga |
Ta bort | Vad ska hända när den primära tabellraden tas bort? | Kaskad på alla Ta bort länk Begränsa |
Ta bort delning | Vad ska hända när den primära tabellraden avslutas? | Kaskad på alla Kaskad på aktiva Användarägd i kaskad Kaskad på inga |
Koppla | Vad ska hända när den primära tabellraden slås samman? | Kaskad på alla Kaskad på inga |
Sammanslagningsvy | Vad är önskad funktion för den sammanslagna vyn som är associerad med denna relation? | Kaskad på alla Kaskad på aktiva Användarägd i kaskad Kaskad på inga |
Anteckning
Åtgärderna tilldela, ta bort, slå samman och ny överordnad utförs inte i följande situationer:
- Om den ursprungliga överordnade raden och den begärda åtgärden innehåller samma värden. Exempel: försöker aktivera en tilldelning och välja en kontakt som redan är ägare till raden
- Försök att utföra en åtgärd på en överordnad rad som redan kör en sammanhängande åtgärd
Anteckning
När en tilldelning körs inaktiveras alla arbetsflöden eller affärsregler som för närvarande är aktiva på raderna automatiskt när omtilldelningen sker. Den nya ägaren av raden måste aktivera arbetsflödet eller affärsregeln om du vill fortsätta använda den.
Överordnade tabellrelationer
Varje par med tabeller som kan ha en 1 till N-relation kan ha flera 1 till N-relationer sig emellan. Vanligtvis kan dock bara en av dessa relationer betraktas som en överordnad tabellrelation.
En överordnad tabellrelation är en 1 till N-tabellrelation där något av de övergripande kaskadalternativen i kolumnen Överordnad i följande tabell är sant.
Åtgärd | Överordnad | Ej överordnad |
---|---|---|
Tilldela | Kaskad på alla Användarägd i kaskad Kaskad på aktiva |
Kaskad på inga |
Ta bort | Kaskad på alla | Ta bort koppling Begränsa |
Ny överordnad | Kaskad på alla Användarägd i kaskad Kaskad på aktiva |
Kaskad på inga |
Dela | Kaskad på alla Användarägd i kaskad Kaskad på aktiva |
Kaskad på inga |
Ta bort delning | Kaskad på alla Användarägd i kaskad Kaskad på aktiva |
Kaskad på inga |
Om du till exempel skapar en ny anpassad tabell och lägger till en 1 till N-tabellrelation med den kontotabell där din anpassade tabell är den relaterade tabellen, kan du konfigurera åtgärderna för den tabellrelationen i syfte att använda alternativen i kolumnen Överordnad. Om du senare lägger till en ytterligare 1 till N-tabellrelation i din anpassade tabell som refererande tabell, kan du endast konfigurera åtgärder där dessa använder alternativen i kolumnen Ej överordnad.
Detta betyder vanligen att det för varje tabellpar endast finns en överordnad relation. Det finns vissa fall där sökningen för den relaterade tabell medger en relation till mer än en tabelltyp.
Om till exempel en tabell har en kundsökning som kan referera till antingen en kontakt- eller en kontotabell. Det finns två separata överordnade 1 till N-tabellrelationer.
Alla aktivitetstabeller har en liknande uppsättning överordnade tabellrelationer som kan associeras med hjälp av tillhörande uppslagskolumner.
Begränsningar som kan anges för beteenden
På grund av de överordnade relationerna finns vissa begränsningar som du bör tänka på när du definierar relationer mellan tabeller.
- En anpassad tabell kan inte vara den primära tabellen i en relation med en relaterad systemtabell som är angiven som kaskad. Det innebär att du inte kan ha en relation med någon åtgärd som angetts som Kaskad på alla, Kaskad på aktiva eller Kaskad på användarägda mellan en primär anpassad tabell och en relaterad systemtabell.
- Nya relationer kan inte ha åtgärder som angetts som Kaskad på alla, Kaskad på aktiva eller Kaskad på användarägda om den relaterade tabellen i den relationen redan finns som en relaterad tabell i en annan relation som har någon åtgärd med värdet Kaskad på alla, Kaskad på aktiva eller Kaskad på användarägda. Därmed undviks relationer med flera överordningar.
Rensning av ärvda åtkomstbehörigheter
Det kan vara bra att använda överordnad och dela överlappande beteenden om du vill ge tillgång till rader i relaterade tabeller. Men det kan finnas en ändring av processen eller utformningen som kräver en ändring av inställningarna för kaskadfunktioner.
När en tabell relation använder överordna eller dela och överlappande beteende ändras från kaskad på alla till kaskad på ingen förhindrar tabellrelationen eventuella nya behörigheter från att överlappa de relaterade underordnade tabellerna. Dessutom måste ärvda behörigheter som beviljades när kaskadfunktionen var aktiv återkallas.
Rensning av ärvda åtkomstbehörigheter är en systemuppgift som rensar gamla ärvda åtkomstbehörigheter som kvarstår efter att kaskadfunktionen ändras till Kaskad på inga. Den här rensningen påverkar inte någon användare som direkt beviljats åtkomst till en tabell, men som tar bort åtkomst från alla som har tagit emot åtkomst enbart genom arv.
Så här fungerar rensning av ärvda åtkomstbehörigheter:
- Identifierar och samlar in alla tabeller som fanns i en överlappande relation med den uppdaterade överordnad.
- Identifierar och samlar in de användare som har beviljats åtkomst till de relaterade registren via ärvd åtkomst.
- Söker efter användare som har tilldelats direkt åtkomst till en relaterad tabell och tar bort dem från samlingen.
- Tar bort ärvd åtkomst för de insamlade användarna i de insamlade registren.
När rensningen har körts kan användare som endast har till gång till relaterade tabeller på grund av överlappande funktion inte längre komma åt raderna och se till att säkerheten blir större. I vissa fall kanske rensningen inte lyckas. Läs mer om att rensa ärvd åtkomst
Se även
Övervaka systemjobb
Skapa och redigera 1 till N(en till flera)- eller N till 1(många-till-en)-relationer
Skapa N:N-relationer för en tabell
Anteckning
Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)
Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).