ORDA – Pozdravte aliasy

Automaticky přeloženo z Deepl

4D v19 R4 je dodáván s novým konceptem ORDA: Aliasy. Jsou logickým a doplňujícím pokračováním vypočtených atributů.

Tento příspěvek na blogu vysvětluje, co jsou aliasy, a zdůrazňuje jejich výhody, zejména kdy použít jeden nebo druhý… nebo oba.

HDI: ALIASY ORDA

Co je to alias?

Jak název napovídá, alias není nic jiného než synonymum nebo zkratka existujícího objektu datového skladu. Stejně jako vypočtené atributy jsou definovány v „datové třídě entity“, jak uvidíme později.

Může to být například existující atribut v samotné datové třídě nebo častěji uvnitř jiné třídy. Stejně jako vypočtený atribut se alias používá k odkazu na skalární hodnotu, entitu nebo výběr entity.

Aliasy nebo VÝPOČTOVÉ atributy?

Možná si říkáte, proč byste měli používat aliasy, když už máte k dispozici vypočtené atributy.

Pravidlo je jednoduché a můžete ho použít bez rizika:

Alias by měl být použit, pokud není potřeba žádný výpočet a výsledek (skalár, entita nebo výběr entity) lze vyjádřit jako cestu.
Např. fathersDad = father.father

Pokud je třeba provést nějaký výpočet (velká písmena, spojování, vyhledávání, vzorce atd.), musí se jednat o vypočtený atribut.
Např.: plné jméno = velké písmeno (příjmení) + křestní jméno

Jednoduchý a konkrétní příklad

Vezměme si klasický příklad Společnosti a Zaměstnanci.

Uvnitř datové třídy Employee chcete mít atribut companyName.
Protože se jedná o jednoduchý atribut přístupný přes cestu, stačí jednoduchý alias. 4D bude optimalizovat vyhledávání, dotazy a třídění, jako by byl cíl použit přímo.

//Employees Class
Class extends Entity
Alias
companyName company.name

Stejným způsobem chcete v datové třídě Firmy přistupovat k seznamu employees (tentokrát se jedná o výběr entit); postačí i alias.

//Companies Class
Class extends Entity
Alias
companyEmployees employees

Naproti tomu, pokud v datové třídě Zaměstnanci chcete atribut coworkers (seznam zaměstnanců se stejným manažerem), budete muset vytvořit vypočtený atribut, který bude výběrem entit () vypočteným takto:

//Employees Class
Class extends Entity

Funkce get coworkers
()->$entitySelection : cs.Employees
$entitySelection := this.manager.directReports.minus(this)

Totéž platí pro tabulku firmy; vypočtený atribut bude povinný, pokud chcete zobrazit seznam vedoucích oddělení atd.

Příklady: KDE lze použít aliasy

Následující příklady budou vycházet z níže popsané fyzické struktury: Lidé mohou být studenty nebo profesory (nebo obojí) a vyučovat a učit se jazyky. Výuka je centrální datová třída, která spojuje Lidé (učitelé a studenti) a Jazyk.

„Zploštění“ tabulky

Chcete skrýt vztahy a vytvořit „jakoby“ atributy patřily přímo k datové třídě, a ne k jiné.

Například: Místo použití professor.name, student.name a Language.name na základě vztahu mezi třídami Lekce, Lidé a Jazyk můžete datovou třídu Lekce raději zploštit pomocí aliasů:

//LessonsEntity Class
Class extends Entity

Alias professorName professor.name
Alias studentName student.name
Alias languageName language.name

To umožní zobrazit Lekce pomocí přímých aliasů!

blank

SKRÝT VZTAHY „N->P“

Zprostředkující datové třídy Lessons mohou být dokonce zcela skryty, pokud jsou definovány všechny vztahy.
Ve výše uvedeném příkladu lze definovat pro každou osobu:

    • lekce, které následují
    • lekce, které dávají
    • studenti, které mají (pokud nabízejí lekce)
    • profesoři, které mají (pokud sledují výuku)

//PeopleEntity Class
Class extends Entity
// entity selection of followed lessons

Alias followedLessons learning.language
// entity selection of given lessons

Alias givenLessons teaching.language
// entity selection of professors
Alias professors learning.professor
// entity selection of students
Alias students teaching.student

Závěr

Podívejte se na výše uvedené HDI a zjistěte více o případech použití aliasů. Další podrobnosti najdete také v centru dokumentů.

Další podrobnosti najdete v dokumentaci zde.

Roland Lannuzel
- Product Owner & 4D Expert - Po studiu elektroniky se Roland věnoval průmyslovým IT jako vývojář a konzultant, který vytvářel řešení pro zákazníky s různými databázemi a technologiemi. Koncem 80. let se zamiloval do 4D a používal jej při psaní podnikových aplikací, které zahrnovaly účetní, fakturační a e-mailové systémy. nakonec se připojil ke společnosti v roce 1997 a Rolandův cenný přínos zahrnuje návrh specifikací, testovacích nástrojů, demoverzí a také školení a přednášky pro komunitu 4D na mnoha konferencích. Nadále aktivně utváří budoucnost 4D definováním nových funkcí a nástrojů pro vývoj databází.