Relaciones
¿Qué es una Relación y su rol en el modelo de datos?
Sección titulada «¿Qué es una Relación y su rol en el modelo de datos?»Una Relación es un vínculo lógico entre registros, es la forma de decir que un registro X tiene algo que ver con un registro Y. La forma en que están relacionados y lo que esa relación representa depende
del usuario configurador, pero los casos de uso más comunes son para expresar relaciones de padre a hijo o categorización con registros atómicos.
Ejemplos:
- Un registro de
Productorelacionado con un registro deCategoríapara expresar algo como un ProductoZapatostiene una relaciónCategoríaasignada al registro de CategoríaPrenda- Una lista de registros de
Articulorelacionados con un registro deFactura, para expresar los artículos que se venden en una transacción particular, comoFactura 1que tiene 10 Articulos deZapatos Negros
En resumen, es la forma de relacionar unidades atómicas de datos entre sí según su naturaleza, para mantener un seguimiento de las interacciones que requiere tu modelo de datos particular.
Tipos de relaciones soportadas
Sección titulada «Tipos de relaciones soportadas»Las relaciones que puedes crear en DatAscend llevan el nombre de los tipos de relaciones en bases de datos relacionales.
Uno a Uno (1:1)
Sección titulada «Uno a Uno (1:1)»Para expresar que un registro de una entidad dada solo puede tener un valor posible para el registro de la entidad relacionada, y de la misma manera, ese registro de entidad relacionada no puede ser referenciado en esta misma relación por un registro diferente.
- Ejemplo: Un Producto solo puede tener 1 Propietario, y a ese Propietario no se le permite poseer más de un Producto.
Uno a Muchos (1:M)
Sección titulada «Uno a Muchos (1:M)»Para expresar que un registro de una entidad dada puede tener múltiples registros relacionados de una entidad diferente.
- Ejemplo: Una entidad Auto puede tener muchos registros de Partes, siendo cada registro de entidad Parte: asientos con calefacción, airbags, etc…
Muchos a Uno (M:1)
Sección titulada «Muchos a Uno (M:1)»Esta es la relación más común, es básicamente la inversa de Uno a Muchos, es una forma de decir que múltiples registros de una entidad dada pueden estar todos relacionados con el mismo registro en una Entidad relacionada.
- Ejemplo: Muchos registros de la entidad Estudiantes pueden ser asignados al mismo registro de Escuela.
Muchos a Muchos (M:M)
Sección titulada «Muchos a Muchos (M:M)»Esta es la relación más abstracta que soportamos, y es la más versátil, utilizada para expresar que muchos registros de un registro de entidad dada pueden estar relacionados con muchos registros de una entidad relacionada. Se usa sobre todo para relacionar entidades reutilizables que no tienen un propietario único entre sí.
- Ejemplo: Muchos registros de la entidad Estudiantes pueden ser asignados a muchos registros de Cursos, y de la misma manera, cada registro de Cursos tendrá muchos estudiantes relacionados.
¿Cómo crear una nueva relación?
Sección titulada «¿Cómo crear una nueva relación?»- El lugar para crear, editar o generalmente manipular Relaciones es el Studio. Para entrar, simplemente puedes hacer clic en el ítem de navegación
Studioen el encabezado de la página.
Nota:
- Debes tener asignado un rol de Administrador para ver o incluso acceder al Studio.
- Si estás en la página de bienvenida, también puedes hacer clic en la tarjeta
Studio.
- Una vez en el
Studio, haz clic en la Entidad, ya sea en la barra lateral izquierda que las lista o en la tarjeta en el lienzo, lo que mostrará el panel de detalles.
- En el panel de detalles, enfócate en la sección
Relacionesy haz clic en el botón+ Agregar Relación, lo que mostrará el modalAgregar Relación.
-
Aquí puedes crear una nueva relación, los controles cambiarán un poco según el tipo de relación que quieras crear, pero aquí explicaremos para qué sirve cada campo:
Para la Entidad
Sección titulada «Para la Entidad»Tipo de relación
Sección titulada «Tipo de relación»- El tipo de la relación, como se describe en Tipos de relaciones soportadas
Atributo en la entidad
Sección titulada «Atributo en la entidad»- El atributo en la Entidad a usar como referencia para la relación, hay dos casos posibles aquí:
- a. El tipo de relación es
Uno a UnooMuchos a Uno: La entrada será un campo de texto, donde puedes escribir la propiedad donde se almacenará el valor de referencia relacionado en el registro de la entidad. - b. El tipo de relación es
Uno a MuchosoMuchos a Muchos: La entrada será un campo desplegable, donde tienes que elegir el atributo existente en la entidad, al que la entidad relacionada hará referencia.
- a. El tipo de relación es
Nombre en la entidad
Sección titulada «Nombre en la entidad»- El nombre sanitizado que esta relación tendrá en la entidad principal, usado para realizar actualizaciones a las relaciones.
Etiqueta
Sección titulada «Etiqueta»- El nombre legible para humanos que puedes dar a esta relación, se mostrará al interactuar con sus registros.
Dependencia de la relación
Sección titulada «Dependencia de la relación»- En el caso de una dependencia directa entre relaciones, puedes seleccionar una segunda relación en la entidad principal, de la cual esta nueva relación dependerá, más sobre dependencia en Dependencia.
Para la Entidad Relacionada
Sección titulada «Para la Entidad Relacionada»Entidad relacionada
Sección titulada «Entidad relacionada»- La
Entidadrelacionada en el otro extremo de esta relación.
Atributo de relación
Sección titulada «Atributo de relación»- El atributo en la
Entidad Relacionadaa usar como referencia para la relación, hay dos casos posibles aquí:- a. El tipo de relación es
Uno a Uno,Muchos a UnooMuchos a Muchos: La entrada será un campo desplegable, donde tienes que elegir el atributo existente en la entidad relacionada, al que la entidad principal hará referencia. - b. El tipo de relación es
Uno a Muchos: La entrada será un campo de texto, donde puedes escribir la propiedad donde se almacenará el valor de referencia de la entidad principal en el registro de la entidad relacionada.
- a. El tipo de relación es
Nombre desde la entidad relacionada
Sección titulada «Nombre desde la entidad relacionada»- El nombre sanitizado que esta relación tendrá en la entidad relacionada, usado para realizar actualizaciones a las relaciones.
Etiqueta en la entidad relacionada
Sección titulada «Etiqueta en la entidad relacionada»- El nombre legible para humanos que puedes dar a esta relación, se mostrará al interactuar con sus registros de la entidad relacionada.
En función de la relación
Sección titulada «En función de la relación»- En el caso de una dependencia directa entre relaciones, puedes seleccionar una segunda relación en la entidad relacionada, de la cual esta nueva relación dependerá, más sobre dependencia en Dependencia.
-
Confirma los cambios y luego haz clic en guardar en el panel de detalles para crear la relación.
Dependencia
Sección titulada «Dependencia»Hay casos en que los valores posibles de algunas relaciones dependen del valor actual de otra relación, llamamos a estos escenarios Dependencia o Relaciones de Dependencia. La forma más fácil de ilustrarlo
es con algunos ejemplos:
- Para las entidades
Animal,Tipo de Animal,Raza de Animalrelacionadas de la siguiente manera:
Raza de Animaltiene una relación conTipo de AnimalAnimaltiene una relación conTipo de Animaly una conRaza de Animalcon una Dependencia deTipo de Animaldonde el tipo de laRaza de Animalcoincide con los valores en el tipo.- Y los siguientes registros:
Tipo de Animal-> PerroTipo de Animal-> GatoRaza de Animal-> Persa, contipoGatoRaza de Animal-> Bulldog, contipoPerro- Al crear un nuevo
Animal, el usuario elige eltipocomo Perro, las opciones paraRaza de Animaldeberían filtrarse según ese valor, por lo que solo “Bulldog” estaría disponible.- En contraste, cuando el usuario elige el
tipocomo Gato, las opciones serían “Persa”.
NOTA: Las relaciones de
Dependenciaactualmente no se aplican en las relaciones de Muchos a Muchos.
¿Cómo ver las relaciones existentes para una entidad?
Sección titulada «¿Cómo ver las relaciones existentes para una entidad?»-
El lugar para ver, editar o generalmente manipular Relaciones es el Studio. Para entrar, simplemente puedes hacer clic en el ítem de navegación
Studioen el encabezado de la página.
-
Una vez en el
Studio, haz clic en la Entidad, ya sea en la barra lateral izquierda que las lista o en la tarjeta en el lienzo, lo que mostrará el panel de detalles. Al hacer clic en un desplegable de relación existente al final se mostrarán las acciones. Para ver el estado actual de la relación, haz clic enEditar Relación.
¿Cómo eliminar una relación?
Sección titulada «¿Cómo eliminar una relación?»-
El lugar para ver, editar o generalmente manipular Relaciones es el Studio. Para entrar, simplemente puedes hacer clic en el ítem de navegación
Studioen el encabezado de la página.
-
Una vez en el
Studio, haz clic en la Entidad, ya sea en la barra lateral izquierda que las lista o en la tarjeta en el lienzo, lo que mostrará el panel de detalles. Al hacer clic en un desplegable de relación existente al final se mostrarán las acciones. Para eliminar la relación, haz clic enEliminar Relación.
- Confirma los cambios y luego haz clic en guardar en el panel de detalles para eliminar la relación.
Cómo usar la UI para navegar entre entidades relacionadas
Sección titulada «Cómo usar la UI para navegar entre entidades relacionadas»En el panel de detalles en el Studio, puedes ver la sección Relaciones, y cada fila tiene una columna Entidad que es en sí misma un enlace al panel de detalles de esa entidad. Al hacer clic en él,
seleccionará esa otra entidad, sus atributos y relaciones. De esta manera puedes atravesar todo el grafo de relaciones solo con clics.
Eliminando entidades
Sección titulada «Eliminando entidades»Eliminar entidades también se puede hacer desde el Studio. Entrando al panel de detalles, habrá un botón en la esquina superior derecha, con un icono de papelera.
Confirma la eliminación de la entidad para completar.
Mejores prácticas y errores comunes a evitar
Sección titulada «Mejores prácticas y errores comunes a evitar»Referencias circulares
Sección titulada «Referencias circulares»Actualmente no soportamos referencias circulares. No se aconseja tener entidades relacionadas consigo mismas ya que no lo soportamos oficialmente.