Uplatnění vlastnosti source

Máme li například dokument zastupce_subjektu a dokument clovek, budeme asi chtít aby v databázi neexistovaly dvě položky evidující stejnou osobu, aby tak nedocházelo k redundanci dat a nutnosti opravovat jeden údaj na více místech. V dokumentu clovek, který si určíme za výchozí, vytvoříme službu inicialy_clověka (vytváření služby již bylo probráno v předchozí kapitole), která bude ostatním dokumentům nabízet údaje ukládané do člověka k použití. V dokumentu zastupce_subjektu pak použijeme vytvořenou službu pro oblast zástupce subjektu, kam se budou iniciály zástupce psát.

Znamená to tedy, že údaje, psané do dokumentu zastupce_subjektu se budou ve skutečnosti ukládat do dokumentu clovek. Znamená to tedy, že můžeme v případě tvorby nového zástupce vytvořit i nového člověka. Zápis atributu source v oblasti inicialy v dokumentu zastupce_subjektu bude vypadat takto:

source="foreign:clovek:/inicialy_cloveka"

Přejeme-li si vytvářet vlastní úložiště s využitím výchozích hodnot uložených v jiných dokumentech, můžeme použít na místo klíčového slova foreign slovo initial. Tento mechanismus může najít uplatnění například v dokumentu faktura, kde jako fakturační položky používáme položky dokumentu cenik. Jde však o to, že faktura je daňový doklad a jako takový musí zůstat zachován stejný i v budoucnu, přesto, že budeme například nuceni poopravit název ceníkové položky či dokonce změnit sazbu DPH.

Pokud bychom mezi fakturou a ceníkem použili vazbu foreign, pak by spolu se změnami v ceníku došlo i k nežádoucím změnám na faktuře (resp. všech fakturách, které danou položku ceníku využívají). Právě pro tyto případy je tu mechanismus initial. Tento mechanismus sice propojuje dva dokumenty a do odkazujícího ukládá klíč výchozího, stejně jako u mechanismu foreign, ale navíc vytváří i vlastní políčka v databázi pro všechny převzaté prvky. Uživatel tedy pak snadno z ceníku vybere požadovanou položku a fakturu vystaví. Po změně položky v ceníku však faktura zůstane beze změn, nebo" změna v ceníku se netýká úložiště ve faktuře.


Mechanismus zdrojeZdrojový dokumentOdkaz na službu dokumentuUplatnění vlastnosti sourceVztah opakovatelnosti depend a typu zdrojePříklady syntaxeVlastnost source source