Jak na denormalizovaná data v ObjectGears
22.03.2016
S následující situací se pravděpodobně již mnohokrát setkal každý správce či vývojář databázového systému. Začnete s textovým pole, které uživatelům poskytuje flexibilitu v zadání dat, ale později zjistíte, že byste potřebovali spíše odkaz na číselník hodnot (cizí klíč), abyste řešili kvalitu a denormalizaci dat. Např. potřebujete evidovat další vlastnosti odkazované entity nebo ji propojit s dalšími informacemi ve vašem systému. Jak s řešením tohoto problému pomáhá ObjectGears? O tom se dočtete v tomto článku.
ObjectGears odstiňuje uživatele od databázové implementace. Nabízí mu proto i funkce, které by jinak řešil databázový administrátor.
Výše uvedený problém by Vás v ObjectGears asi napadlo řešit následujícím způsobem:
-
Vytvoření nové třídy pro daný číselník
-
V třídě obsahující textový sloupec, který se má nahradit, vytvoříme sloupec typu odkaz na novou třídu/číselník
-
Z třídy s textovým sloupcem exportujeme data do souboru
-
Data ze souboru importujeme do třídy číselník pomocí funkce importující unikátní záznamy
-
Ve třídě s textovým sloupcem postupně filtrujeme záznamy podle textového pole a nastavujeme odpovídající záznamy ve sloupci typu odkaz na číselník pomocí hromadných změn
Body 4 a 5 by bylo možné řešit i vytvořením mapovací tabulky různých hodnot v textovém sloupci a odpovídající hodnoty číselníku a importu pomocí mapovacího dotazu použitého pro import.
ObjectGears nabízí také další možnosti, které využijete při rozsáhlejších úpravách datového modelu a migracích dat.
Funkce CreateTypeRows
Tuto funkci spustíte ve Skriptovacím okně ObjectGears. Jako vstupy jí předáte identifikátor textového sloupce, identifikátor sloupce s hodnotami v číselníku a identifikátor sloupce s odkazem. Tento jediný příkaz vyřeší vše za vás. Pokud chcete provést vyčištění dat, proveďte ho předtím pomocí filtrování a hromadných změn záznamů.
Export číselníku pomocí Admin toolu
Stejnou operaci můžete provést i v Admin toolu. Třídy a sloupce vybíráte v comboboxech.