Článek: AN0001865Aktualizováno::
Odkaz na jinou třídu
Pokud použijeme sloupec typu číselníková hodnota, vybíráme do něj následně z hodnot jiné třídy téhož modelu nebo z jiné třídy jiného modelu, pokud na této třídě bylo povoleno odkazování z jiného modelu (určuje se který konkrétní model se na třídu může odkazovat).
Příkladem může být Výrobce, Vlastník, Operační systém, což jsou mohou být atributy například třídy Server. Protože se chceme zajistit čistotu a konzistenci dat (chceme se vyhnout překlepům) a máme několik možných Výrobců serverů, několik možných Vlastníků a několik typů Operačních systémů, které na serverech jsou instalovány, zvolíme při definici těchto atributů ve třídě server typ Číselníková hodnota. Předtím si připravíme třídy, v nichž budeme evidovat Výrobce, Vlastníky a Operační systémy. Při definici daných atributů serverů pak vybereme odpovídající třídu, z níž následně budeme volit konkrétní hodnoty Výrobce, Vlastníka nebo Operačního systému.
Při definici číselníků je dobré se zamyslet, zda je chceme použít pouze v daném modelu (to může být případ Operačního systému v modelu IT techniky) nebo ve více modelech (to může být případ Vlastníka, kterého budeme chtít použít jak u IT techniky, tak u ostatního majetku). V prvním případě je vhodné třídu číselníku definovat v rámci jednoho modelu, který číselník použije. V druhém případě bude vhodné zvážit, zda vytvořit zvláštní model pro obecně sdílené číselníky a číselník definovat a udržovat v něm.
Struktura číselníků (vztahů mezi třídami) může být složitější. U třídy (číselníku) Vlastník můžeme chtít evidovat město, v něž je sídlo vlastníka. Ve sloupci Sídlo třídy Vlastník pak bude vhodné se odkázat do třídy Měst. Podobně ve třídě Města budeme chtít evidovat Kraj, do nějž město spadá. Promyšlený návrh vztahů tříd zaručí konzistenci dat a bude adekvátně odrážet vztahy objektů reálného světa.
Řazení v seznamu, z něhož vybíráme do sloupce typu číselníková hodnota
Při výběru hodnot do sloupce typu číselníková hodnota se uživateli zobrazuje přehled záznamů ze třídy, na níž se odkazuje. Řazení záznamů v tomo přehledu může být odlišné od řazení záznamů v odkazované třídě a lze ho nastavit v definici sloupce typu číselníková hodnota.
Třída pro omezení záznamů
V případě komplexnějších vztahů entit nám pro zajištění integrity dat pomůže vlastnost datové typu Číselníková hodnota, která se nazývá Třída pro omezení záznamů. V níže uvedeném modelu vybíráme ve třídě LookUpTable ze třídy Database a ze třídy Table, přičemž platí, že záznam ve třídě Table má také vlastnost Database. (Vztah tříd Database a LookUpTable je na první pohled redundantní , neodpovídá 3. NF, nicméně variabilita objektů může vézt k volbě podobných modelů z důvodu zjednodušení modelu a omezení počtu tříd.)
Při zakládání záznamů ve třídě LookUpTable pak chceme, aby po výběru Database nám byly nabízeny pouze ty záznamy ze třídy Table, které mají danou Database. Toho dosáhneme tak, že ve sloupci id_Table třídy LookUpTable nastavíme třídu pro omezení záznamů na hodnotu Database. Nestane se nám pak, že bychom omylem vybrali tabulku patřící do jiné databáze než je zvolená databáze.
Odkaz na uživatele
Ve sloupcích typu číselník je možné se odkázat také na množinu uživatelů ObjectGears. Toto umožní např. určovat, kdo je zodpovědný za vyřešení úkolu nebo za správu aplikace či serveru.
Vazba na jeden nebo více záznamů
Ve sloupci typu číselníková hodnota se mohu odkázat na jeden nebo více záznámů z jiné třídy.
Zobrazení vazby ve třídě na druhé straně relace
Po vytvoření nového sloupce typu číselníková hodnota ve třídě X odkazujícího se na třídu Y, ObjectGears automaticky vytvoří odpovídající sloupec ve třídě Y, zobrazující vazbu na třídu X.
Tento sloupec existuje, nicméně ve výchozím stavu není zobrazen v žádném ze tří možných zobrazení třídy Y. Kód sloupce je automaticky generován ve tvaru cl-[název třídy]-[x], kde [x] je první volné číslo. Jméno sloupce je generováno ve tvaru [název třídy, která se odkazuje] - [název sloupce, v kterém se odkazuje]. Tento název, zobrazení a některé další parametry automaticky vytvořeného sloupce lze změnit. Ostatní modifikovat nelze. Sloupec je automaticky odstraněn v okamžiku odstranění příslušného sloupce v třídě, která se odkazuje.