Dokumenty s cizím zdrojem 2. úrovně

Vazbou 1. úrovně jsou míněny takové odkazy, které odkazují na segmenty s vlastním zdrojem (čili nezprostředkovávají uložení v jiném dokumentu). Toto zprostředkování může nastat ve skutečnosti jenom v případě, že zdrojem segmentu v dokumentu C je segment v dokumentu B, který sám o sobě čerpá mechanismem foreign z dokumentu A. Pak říkáme, že dokument C má vazbu 2. úrovně, neboť odkazovaný dokument B sám neposkytuje úložiště odkazovanému segmentu, ale využívá úložiště v dokumentu A, na který má vazbu 1. úrovně.

Pokud by dokument B čerpal z dokumentu A mechanismem initial a nikoli foreign, pak by i dokument C měl vazbu 1. úrovně, protože by čerpal z úložiště v dokumentu B a nikoli ze zprostředkovaného úložiště v dokumentu A. Pokud by v celé aplikaci byl použit jen mechanismus initial a nikoli foreign, pak by nikdy nemohlo dojít k vazbě 2. či vyšší úrovně.

Pravdou je, že zdroje druhé či vyšší úrovně by se měli používat jen velmi opatrně a pokud možno u dokumentů, se kterými se intenzivně nepracuje. Dochází zde logicky ke spojování většího počtu tabulek při každém dotazu. Jsou však situace, kdy je použití takové víceúrovňové provázanosti velmi užitečné. Velmi často se však dá počet úrovní rozdělit (a mnohdy to odpovídá i logice návrhu) použitím mechanismu initial v některé prostřední úrovni propojení. Tím dochází elegantně ke snížení náročnosti na propojování tabulek. V následujícím příkladu by také asi bylo patrně lepší použít mechanismu initial, ale pro demonstraci tvorby array pro víceúrovňová propojení použijeme mechanismus foreign.


XDS příklad

V našem příkladu vytvoříme ve skupině marketing dokument dopis, který bude marketingovému oddělení sloužit pro komunikaci se subjekty (zákazníci, dodavatelé, partneři) resp. s jejich zástupci.


DAD příkladu

Základem dokumentu dopis bude opět hlavní array:


Tvorba odvozených arrayTvorba odvozených array v kombinaci s opakovánímDokumenty s vazbou initialDokumenty s cizím zdrojem 2. úrovně