Споделяне чрез


Релации на таблица

Релациите на таблица определят как редовете могат да бъдат свързани помежду си в базата данни. На най-простото ниво добавянето на справочна колона към дадена таблица създава нова 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 помежду си. Все пак обикновено само една от тези релации може да се счита за родителска релация на таблица.

Родителската релация на таблица е всяка релация на таблица 1:N, където една от опциите за каскадно подреждане в колоната Родителска в таблицата по-долу е вярна.

Действие Главна Неродителска
Присвояване Каскадно подреждане на всички
Каскадно подреждане на притежавани от потребителя
Каскадно подреждане на активните
Без каскадно подреждане
Изтриване Каскадно подреждане на всички RemoveLink
Ограничаване
Прехвърляне Каскадно подреждане на всички
Каскадно подреждане на притежавани от потребителя
Каскадно подреждане на активните
Без каскадно подреждане
Сподели Каскадно подреждане на всички
Каскадно подреждане на притежавани от потребителя
Каскадно подреждане на активните
Без каскадно подреждане
Премахване на споделянето Каскадно подреждане на всички
Каскадно подреждане на притежавани от потребителя
Активна каскада
Без каскада

Ако например създадете нова персонализирана таблица и добавите релация на таблица 1:N с таблица на акаунт, където персонализираната ви таблица е свързаната таблица, можете да конфигурирате действията за тази релация на таблица, за да използвате опциите в колоната Родителска. Ако по-късно добавите друга релация на таблица 1:N с персонализираната си таблица като препращаща таблица, можете да конфигурирате само действията, за да използвате опциите в колоната Неродителска.

Обикновено това означава, че за всяка двойка таблици има само една родителска релация. Има някои случаи, където справката за свързаната таблица може да разреши дадена релация да е за повече от един тип таблица.

Ако например дадена таблица има справка на клиент, която може да препраща към контакт или таблица на клиент. Има две отделни родителски релации на таблици 1:N.

Всяка таблица на дейност има подобен набор от родителски релации на таблици за таблици, които могат да бъдат свързани с помощта на справочната колона „Относно“.

Ограничения на поведения, които можете да зададете

Поради родителските релации има някои ограничения, които трябва да имате предвид, когато определяте релации на таблици.

  • Дадена персонализирана таблица не може да бъде основната таблица в релация със свързана системна таблица, която се подрежда каскадно. Това означава, че е невъзможно да имате релация с каквото и да било действие, зададено като Каскадно подреждане на всички, Каскадно подреждане на активните или Каскадно подреждане на притежавани от потребителя, между основна персонализирана таблица и свързана системна таблица.
  • Нови релации не могат да имат каквото и да било действие, зададено на Каскадно подреждане на всички, Каскадно подреждане на активните или Каскадно подреждане на притежавани от потребителя, ако свързаната таблица в тази релация вече съществува като свързана таблица в друга релация, съдържаща действие, зададено на Каскадно подреждане на всички, Каскадно подреждане на активните или Каскадно подреждане на притежавани от потребителя. По този начин се избягват релации, в които се създават отношения с няколко родителски обекта.

Почистване на наследствени права за достъп

Използването на каскадни поведения за повторно родителство и споделяне е полезно, когато искате да предоставите достъп до редове в свързани таблици. Но може да има промяна в процеса или дизайна, която изисква промяна на настройките за каскадно поведение.

Когато релация между таблици използва Reparent или Share и каскадното поведение се промени на Cascade None, релацията между таблиците предотвратява каскадното преминаване на нови промени в разрешението към свързаните дъщерни таблици. В допълнение, наследените разрешения, които са били предоставени, докато каскадното поведение е било активно, трябва да бъдат отменени.

Почистването на наследените права за достъп е системна задача, която изчиства наследените права за достъп, които остават, след като каскадното поведение се промени на Cascade None. Това изчистване няма да засегне никой потребител, на когото директно е предоставен достъп до таблица, но ще премахне достъпа от всеки, който е получил достъп само чрез наследяване.

Ето как работи почистването на наследени права за достъп:

  1. Идентифицира и събира всички таблици, които са били в каскадна връзка с актуализирания родител.
  2. Идентифицира и събира потребителите, на които е предоставен достъп до свързаните таблици чрез наследен достъп.
  3. Проверява за потребители, на които е даден пряк достъп до свързана таблица, и ги премахва от колекцията.
  4. Премахва наследения достъп за събраните потребители в събраните таблици.

След стартирането на почистването потребителите, които са имали достъп до свързани таблици само поради каскадната функция, вече не могат да имат достъп до редовете, осигурявайки по-голяма защита. Има случаи, в които почистването може да не е успешно. Научете повече за това как да почистите наследения достъп

Вижте също

Мониторинг на системни задачи
Създаване и редактиране на релации 1:N (едно към много) или N:1 (много към едно)
Създаване на релации на таблица от тип „много към много“ (N:N)

Бележка

Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)

Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).