Příkladem je situace kdy nahráváte nové pobočky, která mají návaznost relací na již nahrané adresy. V provázání pomocí SREL je určena klíčová hodnota ID (location_UUID).
Místo složitého dohledávání UUID pro každou lokailtu je možno použít přívětivější název location_name, který za pomocí pdm_deref nahradíme platným location_UUID. Díky tomu budeme moct dále pomocí nahrávání číselníkových (pdm_load) data nahrát a vytvořit tak návaznost v systému.
Použití
operátory:
-s - určení vstupního souboruPříklad:
pdm_load -s ca_location_in.txt < ca_location_def.txt > ca_location_out.txtFormát dat
Formát dat musí být uložený ve formátování UTF-8.Struktura dat v souboru je následující:
Soubor vstupní data
Stejná jako když připravujeme data pro pdm_load:
TABLE jmeno_tabulky
parametr1 parametr2
{ "hodnota_1", "hodnota_2" }
comment org_name location_name
{ "Organizace v Praze 1", "ORG_P1", "Praha_1" }
{ "Organizace v Praze 5", "ORG_P5", "Praha_5" }
Defefparametr1 parametr2
{ "hodnota_1", "hodnota_2" }
Příklad
TABLE ca_organizationcomment org_name location_name
{ "Organizace v Praze 1", "ORG_P1", "Praha_1" }
{ "Organizace v Praze 5", "ORG_P5", "Praha_5" }
Soubor s definicí (vstupními parametry)
{
input = vstupni_tabulkovy_zaznam
output = vystupni_tabulkovy_zaznam
rule = "SELECT id FROM tabulka_ze_ktere_se_ctou_data WHERE cteny_zaznam=?"
}
Kdy:
input = vstupni_tabulkovy_zaznam - název atributu, který bude ze vstupního souboru porovnáván s hodnotou pole v databázi
output = vystupni_tabulkovy_zaznam - název atributu ve výstupním souboru, do kterého budou doplněny dereferencované hodnoty z databáze
rule = "SELECT id FROM tabulka_ze_ktere_se_ctou_data WHERE cteny_zaznam=?" - databázový dotaz, který říká: vyber všechny atributy id z tabulky ca_location, kde je location_name shodné s hodnotou parametru v input a ulož je do výstupního souboru jako output
Kdy:
input = vstupni_tabulkovy_zaznam - název atributu, který bude ze vstupního souboru porovnáván s hodnotou pole v databázi
output = vystupni_tabulkovy_zaznam - název atributu ve výstupním souboru, do kterého budou doplněny dereferencované hodnoty z databáze
rule = "SELECT id FROM tabulka_ze_ktere_se_ctou_data WHERE cteny_zaznam=?" - databázový dotaz, který říká: vyber všechny atributy id z tabulky ca_location, kde je location_name shodné s hodnotou parametru v input a ulož je do výstupního souboru jako output
Příklad
Deref
{
input = location_name
output = location_uuid
rule = "SELECT id FROM ca_location WHERE location_name=?"
}
Výstupní data po použití dpm_deref
Jak si můžeme všimnout, atribut a hodnoty location_name byly nahrazeny adekvátními hodnotami atributu locaton_uuid.TABLE ca_organization
comment org_name location_uuid
{ "Organizace v Praze 1", "ORG_P1", "CAF08BA06EB6864CBA9102437EE2AADF" }
{ "Organizace v Praze 5", "ORG_P5", "C2FFABB6B3F39F4AAE056801D0E322E5" }
No comments:
Post a Comment