ORDA – Diga olá a Pseudônimos

Tradução automática de Deepl

4D v19 R4 é enviado com um novo conceito ORDA: Pseudónimos. São a continuação lógica e complementar dos atributos computorizados.

Este post no blog explica o que são os pseudónimos e destaca as suas vantagens, especialmente quando se usa um ou outro… ou ambos.

HDI: PSEUDÓNIMOS ORDA

O que é um pseudónimo?

Como o nome sugere, um pseudónimo não é mais do que um sinónimo ou atalho para um objecto de datastore existente. Tal como os atributos computados, eles são definidos na “entidade dataclass”, como veremos mais adiante.

Este pode ser, por exemplo, um atributo existente no próprio dataclass, ou mais frequentemente dentro de outro. Tal como um atributo computado, um alias é utilizado para referenciar um valor escalar, uma entidade, ou uma selecção de entidade.

Aliases ou atributos COMPUTADOS?

Pode perguntar-se por que razão se deve utilizar pseudónimos quando já se dispõe de atributos computados.

A regra é simples, e pode aplicá-la sem risco:

Um pseudónimo deve ser utilizado se não for necessário um cálculo, e o resultado (escalar, entidade, ou selecção de entidade) pode ser expresso como um caminho.
por exemplo, fathersDad = pai.pai

Se algum cálculo tiver de ser efectuado (capitalização, concatenação, pesquisas, fórmulas, etc.), deve ser um atributo computorizado.
por exemplo: nome completo = maiúsculas (último nome) + primeiro nome

Um exemplo SIMPLES E CONFIRMADOS

Tomemos o exemplo clássico de Empresas e Empregados.

Dentro do Dataclass Employee, pretende um atributo companyName.
Uma vez que se trata de um atributo simples acessível através de um caminho, basta um simples pseudónimo. 4D irá optimizar as pesquisas, consultas, e ordenar como se o alvo fosse utilizado directamente.

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

Do mesmo modo, na folha de dados das Empresas, pretende aceder à lista de employees (desta vez, uma selecção de entidade); um pseudónimo será também suficiente.

//Companies Class
Class extends Entity
Alias
companyEmployees employees

Por outro lado, se no Dataclass Empregado quiser um atributo coworkers (lista de empregados com o mesmo gestor), terá de criar um atributo computorizado que será uma selecção de entidade () calculada desta forma:

//Employees Class
Class extends Entity

Função obter colegas de trabalho
()->$entitySelection : cs.Empregados
$entitySelection := isto.manager.directReports.minus(this)

O mesmo se aplica à tabela da empresa; um atributo computorizado será obrigatório se quiser exibir a lista dos chefes de departamento, etc.

Exemplos ONDE podem ser utilizados pseudónimos

Os exemplos seguintes serão baseados na estrutura física descrita abaixo: As pessoas podem ser estudantes ou professores (ou ambos) e ensinar e aprender línguas. As Lições é a base de dados central que liga Pessoas (professores e estudantes) e Língua.

“Aplanar” uma tabela

Deseja esconder relações e fazer “como se” os atributos pertencessem directamente a um dataclass e não a outro.

Ex: Em vez de utilizar professor.name, student.name e Language.name com base na relação entre Lições, Pessoas, e Língua, poderá preferir aplanar a classe de dados das Lições utilizando pseudónimos:

//LessonsEntity Class
Class extends Entity

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

Isto permitirá exibir as Lições usando pseudónimos directos!

blank

OCULTAR AS RELAÇÕES “N->P

As Lições intermediárias de dataclasses podem até ser completamente ocultadas desde que todas as relações sejam definidas.
No exemplo acima, é possível definir para cada pessoa:

    • as lições que seguem
    • as lições que eles dão
    • os estudantes que eles têm (se oferecerem aulas)
    • os professores que eles têm (se seguirem as aulas)

//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

Conclusão

Verifique o IDH acima e saiba mais sobre os casos de utilização de pseudónimos. Encontre também mais detalhes sobre o centro doc.

Para mais detalhes, a documentação pode ser encontrada aqui.

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.