# Rozpoznawanie i naprawianie odwołań cyklicznych

Gdy struktura danych zawiera odwołania cykliczne (pętle), tabele są skojarzone w taki sposób, że istnieje więcej niż jedna ścieżka powiązania dwóch pól.

Takich struktur danych należy unikać, ponieważ mogą powodować niejednoznaczne interpretowanie danych.

Trzy tabele z odwołaniem cyklicznym, ponieważ istnieje więcej niż jedna ścieżka powiązań między dwoma polami.

Trzy tabele z odwołaniem cyklicznym, ponieważ istnieje więcej niż jedna ścieżka powiązań między dwoma polami.

Trzy tabele z odwołaniem cyklicznym, ponieważ istnieje więcej niż jedna ścieżka powiązań między dwoma polami. ![Trzy tabele z odwołaniem cyklicznym.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ex_gen_CircularTables.png)

W programie Qlik Sense problem odwołań cyklicznych można rozwiązać, przerywając pętlę za pomocą tabeli luźno powiązanej. W razie znalezienia cyklicznych struktur danych podczas wykonywania skryptu ładowania w programie Qlik Sense wyświetli się okno dialogowe z ostrzeżeniem, po czym co najmniej jedna tabela zostanie ustawiona jako luźno powiązana. Program Qlik Sense podejmie zazwyczaj próbę poluzowania najdłuższej z tabel należących do pętli, ponieważ często będzie to tabela transakcyjna, która powinna być w pierwszej kolejności ustawiana jako luźno powiązane. W przeglądarce modelu danych tabela luźno powiązana jest wskazywana czerwoną linią przerywaną biegnącą do innych tabel.

Przykład:

Dane są ładowane z trzech tabel, które obejmują:

* Nazwy piłkarskich reprezentacji narodowych
* Kluby piłkarskie w niektórych miastach
* Miasta w niektórych europejskich krajach

Widok źródłowych tabel danych w programie Excel.

Widok źródłowych tabel danych w programie Excel.

Widok źródłowych tabel danych w programie Excel. ![Tabele w programie Excel.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ex_gen_CircularRefData.png)

Ta struktura danych nie jest naprawdę prawidłowa, ponieważ nazwa pola Team jest używana dla dwóch różnych celów: dla drużyn narodowych i klubów lokalnych. Dane w tabelach tworzą niemożliwą sytuację logiczną.

W przypadku ładowania tabel do Qlik Sense program Qlik Sense ustala, które połączenie danych jest najmniej istotne, i poluzowuje tę tabelę.

Aby sprawdzić, w jaki sposób program Qlik Sense interpretuje istotność połączeń do danych, należy otworzyć przeglądarkę modelu danych:

Widok odwołań cyklicznych zaznaczonych czerwonymi liniami przerywanymi.

Widok odwołań cyklicznych zaznaczonych czerwonymi liniami przerywanymi.

Widok odwołań cyklicznych zaznaczonych czerwonymi liniami przerywanymi. ![Circular references between tables.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ex_gen_Circular.png)

Tabela z miastami i krajami, do których należą, jest teraz luźno powiązana z tabelą zawierającą drużyny narodowe różnych krajów, a także z tabelą zawierającą kluczy lokalne z różnych miast.

## Naprawianie odwołań cyklicznych

Jeśli powstaną odwołania cykliczne, trzeba zmodyfikować skrypt ładowania danych, przypisując niepowtarzalną nazwę jednemu z pól, które mają identyczne nazwy.

Wykonaj następujące czynności:

1. Otwórz edytor skryptu ładowania danych.

2. Edytuj instrukcję LOAD dla jednego z pól o zduplikowanych nazwach.

   W tym przykładzie instrukcja LOAD tabeli, która zawiera drużyny lokalne oraz ich miasta, będzie zawierać nową nazwę dla pola Team, na przykład LocalClub. Zmodyfikowana instrukcja LOAD będzie następująca:

   `LOAD City, Team as LocalClub`

1) Kliknij przycisk the Odtwórz icon na pasku narzędzi, aby przeładować dane w aplikacji.

Po wykonaniu tych operacji otrzymujemy logikę, która działa we wszystkich tabelach. Jeśli w tym przykładzie zostanie wybrana wartość Germany, wówczas zostanie skojarzona reprezentacja narodowa, miasta we Włoszech, a także lokalne kluby w każdym mieście:

![Sheet with four tables.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ex_gen_CircularSolved.png)

Po otwarciu przeglądarki modelu danych widać, że połączenia luźno powiązane zostały zastąpione zwykłymi:

![Three tables with regular connections in the Data model viewer.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ex_gen_CircularSolved_dmv.png)

Powiązane materiały edukacyjne:

* [Wprowadzenie do przeglądarki modeli danych](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)

## Dowiedz się więcej

* [Wprowadzenie do przeglądarki modeli danych](https://help.qlik.com/lnk/Intro_Data_Model_Viewer_QS)