Saltearse al contenido

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 Producto relacionado con un registro de Categoría para expresar algo como un Producto Zapatos tiene una relación Categoría asignada al registro de Categoría Prenda
  • Una lista de registros de Articulo relacionados con un registro de Factura, para expresar los artículos que se venden en una transacción particular, como Factura 1 que tiene 10 Articulos de Zapatos 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.

Las relaciones que puedes crear en DatAscend llevan el nombre de los tipos de relaciones en bases de datos relacionales.

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.

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…

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.

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.
  1. El lugar para crear, editar o generalmente manipular Relaciones es el Studio. Para entrar, simplemente puedes hacer clic en el ítem de navegación Studio en 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.
Imagen del Dashboard con el ítem de navegación Studio del encabezado resaltado
  1. 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.
Imagen del Studio con el panel de detalles
  1. En el panel de detalles, enfócate en la sección Relaciones y haz clic en el botón + Agregar Relación, lo que mostrará el modal Agregar Relación.
Imagen del Studio con el modal de añadir relaciones visible
  1. 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:

    • 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 Uno o Muchos 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 Muchos o Muchos 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.
    • El nombre sanitizado que esta relación tendrá en la entidad principal, usado para realizar actualizaciones a las relaciones.
    • El nombre legible para humanos que puedes dar a esta relación, se mostrará al interactuar con sus registros.
    • 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.

    • La Entidad relacionada en el otro extremo de esta relación.
    • El atributo en la Entidad Relacionada a usar como referencia para la relación, hay dos casos posibles aquí:
      • a. El tipo de relación es Uno a Uno, Muchos a Uno o Muchos 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.
    • El nombre sanitizado que esta relación tendrá en la entidad relacionada, usado para realizar actualizaciones a las relaciones.
    • El nombre legible para humanos que puedes dar a esta relación, se mostrará al interactuar con sus registros de la entidad relacionada.
    • 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.
  2. Confirma los cambios y luego haz clic en guardar en el panel de detalles para crear la relación.

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 Animal relacionadas de la siguiente manera:
    • Raza de Animal tiene una relación con Tipo de Animal
    • Animal tiene una relación con Tipo de Animal y una con Raza de Animal con una Dependencia de Tipo de Animal donde el tipo de la Raza de Animal coincide con los valores en el tipo.
  • Y los siguientes registros:
    • Tipo de Animal -> Perro
    • Tipo de Animal -> Gato
    • Raza de Animal -> Persa, con tipo Gato
    • Raza de Animal -> Bulldog, con tipo Perro
  • Al crear un nuevo Animal, el usuario elige el tipo como Perro, las opciones para Raza de Animal deberían filtrarse según ese valor, por lo que solo “Bulldog” estaría disponible.
  • En contraste, cuando el usuario elige el tipo como Gato, las opciones serían “Persa”.

NOTA: Las relaciones de Dependencia actualmente 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?»
  1. El lugar para ver, editar o generalmente manipular Relaciones es el Studio. Para entrar, simplemente puedes hacer clic en el ítem de navegación Studio en el encabezado de la página.

    Imagen del Dashboard con el ítem de navegación Studio del encabezado resaltado
  2. 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 en Editar Relación.

Imagen del Studio con el panel de detalles resaltando la acción Editar Relación Imagen del Studio con el modal de editar relación con valores asignados
  1. El lugar para ver, editar o generalmente manipular Relaciones es el Studio. Para entrar, simplemente puedes hacer clic en el ítem de navegación Studio en el encabezado de la página.

    Imagen del Dashboard con el ítem de navegación Studio del encabezado resaltado
  2. 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 en Eliminar Relación.

Imagen del Studio con el panel de detalles resaltando la acción Editar Relación
  1. 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.

Imagen del Studio con la sección de relaciones enfocada

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.

Botón Eliminar entidad con un icono de papelera

Confirma la eliminación de la entidad para completar.

Modal de confirmación de eliminación de entidad

Mejores prácticas y errores comunes a evitar

Sección titulada «Mejores prácticas y errores comunes a evitar»

Actualmente no soportamos referencias circulares. No se aconseja tener entidades relacionadas consigo mismas ya que no lo soportamos oficialmente.