ORDA – Saluda a los alias

Traducido automáticamente de Deepl

4D v19 R4 se entrega con un nuevo concepto de ORDA: Los alias. Son la continuación lógica y complementaria de los atributos computados.

Esta entrada del blog explica qué son los alias y destaca sus ventajas, especialmente cuándo utilizar uno u otro… o ambos.

HDI: ALIAS DE ORDA

¿Qué es un alias?

Como su nombre indica, un alias no es más que un sinónimo o un acceso directo a un objeto de almacén de datos existente. Al igual que los atributos computados, se definen en la «clase de datos de la entidad», como veremos más adelante.

Puede ser, por ejemplo, un atributo existente en la propia clase de datos, o más a menudo dentro de otra. Al igual que un atributo computado, un alias se utiliza para referenciar un valor escalar, una entidad o una selección de entidades.

¿Aliases o atributos computados?

Puede que se pregunte por qué debería utilizar alias cuando ya dispone de atributos computados.

La regla es sencilla, y puede aplicarla sin riesgo:

Un alias debe utilizarse si no se necesita ningún cálculo y el resultado (escalar, entidad o selección de entidades) puede expresarse como una ruta.
Por ejemplo, padrePadre = padre.padre

Si hay que realizar algún cálculo (mayúsculas, concatenación, búsquedas, fórmulas, etc.), debe ser un atributo computado.
Por ejemplo: nombre completo = mayúscula (apellido) + nombre

Un ejemplo SIMPLE y concreto

Tomemos el ejemplo clásico de Empresas y Empleados.

Dentro de la clase de datos Empleado, quiere un atributo companyName.
Como se trata de un atributo simple accesible a través de una ruta, un simple alias es suficiente. 4D optimizará las búsquedas, consultas y ordenaciones como si se utilizara el objetivo directamente.

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

Si en la clase de datos Empresas se quiere acceder a la lista de employees (esta vez, una selección de entidades), un alias también será suficiente.

//Companies Class
Class extends Entity
Alias
companyEmployees employees

Por otro lado, si en la clase de datos Empleados quieres un atributo coworkers (lista de empleados con el mismo jefe), tendrás que crear un atributo computado que será una selección de entidades () calculada así

//Employees Class
Class extends Entity

Función get coworkers
()->$entitySelection : cs.Empleados
$entitySelection := this.manager.directReports.minus(this)

Lo mismo se aplica a la tabla de empresas; un atributo calculado será obligatorio si se quiere mostrar la lista de jefes de departamento, etc.

Ejemplos DONDE se pueden utilizar los alias

Los siguientes ejemplos se basan en la estructura física descrita a continuación: Las personas pueden ser estudiantes o profesores (o ambos) y enseñar y aprender idiomas. Las Lecciones son la clase de datos central que vincula a las Personas (profesores y estudiantes) y a los Idiomas.

«Aplanar» una tabla

Desea ocultar las relaciones y hacer «como si» los atributos pertenecieran directamente a una clase de datos y no a otra.

Ej: En lugar de usar professor.name, student.name y Language.name basados en la relación entre Lecciones, Personas e Idioma, puede preferir aplanar la clase de datos Lecciones usando alias:

//LessonsEntity Class
Class extends Entity

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

Esto permitirá mostrar las Lecciones utilizando alias directos.

blank

OCULTAR LAS RELACIONES «N->P

Las clases de datos intermedias de Lessons pueden incluso ocultarse por completo siempre que se definan todas las relaciones.
En el ejemplo anterior, se puede definir para cada persona

    • las lecciones que siguen
    • las lecciones que imparten
    • los estudiantes que tienen (si ofrecen lecciones)
    • los profesores que tienen (si siguen lecciones)

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

Conclusión

Consulta el IDH anterior y aprende más sobre los casos de uso de los alias. Además, encuentra más detalles en el centro de documentación.

Para más detalles, la documentación se puede encontrar aquí.

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.