Relacionar una o más tablas - Introducción

Completado

A fin de crear una solución eficiente y escalable para la mayoría de las soluciones que crea, tendrá que dividir los datos en diferentes contenedores (tablas). Tratar de almacenar todo en un solo contenedor probablemente sea ineficaz y poco manejable y comprensible.

El ejemplo siguiente contribuye a ilustrar este concepto.

Imagine que necesita crear un sistema para gestionar pedidos de venta. Necesita una lista maestra de los artículos que vende, junto con el inventario disponible, el coste del artículo y el precio de venta. También necesita una lista maestra de clientes, con sus direcciones y calificaciones crediticias. Por último, necesita administrar las facturas de las ventas que realice, por lo que es recomendable disponer de un método para almacenar los datos de las facturas. La factura debe incluir la información de la factura (como la fecha, el número de factura y el comercial), la información del cliente (incluidas la dirección y la clasificación crediticia) y un elemento de línea para cada artículo de la factura. Los elementos de línea deben incluir una referencia al artículo vendido, así como poder proporcionar el coste y el precio adecuados de cada artículo y reducir la cantidad disponible en función de la cantidad vendida en ese elemento de línea.

Tratar crear una tabla única para ofrecer la funcionalidad descrita anteriormente sería desaconsejable e ineficaz. La forma correcta de abordar este escenario empresarial es crear las siguientes cuatro tablas:

  • Clientes
  • Productos
  • Facturas
  • Productos de línea

Crear una tabla para cada uno de estos elementos y relacionarlos entre sí le permitirá crear una solución eficaz y escalable y mantener al mismo tiempo un nivel de rendimiento alto. La división de los datos en varias tablas también implica que no tendrá que almacenar datos repetitivos ni admitir grandes filas con grandes cantidades de datos en blanco. Esto se conoce como normalización de datos. Además, la generación de informes será más fácil si divide los datos en distintas tablas.

Las tablas que se relacionan entre sí tienen una conexión relacional. La tecnología detrás de Microsoft Dataverse es una base de datos relacional administrada en la nube por Microsoft. Existen muchas formas de relaciones entre tablas, pero las dos más habituales son las relaciones de uno a varios y de varios a varios, ambas admitidas por Dataverse.

Las relaciones de uno a varios también se conocen como relaciones primario-secundario. En el ejemplo de la factura anterior, la tabla de facturas sería la entidad primaria y la de elementos de línea sería una tabla secundaria. Una factura puede tener cero, uno o muchos elementos de línea (filas secundarias), pero un elemento de línea siempre estará relacionado con una sola factura (fila primaria). Por lo general, las filas secundarias no existirán sin una fila primaria.

Para identificar la fila primaria, se utiliza una columna que solo permite valores únicos. Esta columna única se llama clave. El mismo valor (la clave primaria) se almacena en las filas secundarias relacionadas. Esta columna se denomina clave extranjera cuando la fila secundaria se usa para almacenar el valor de la clave primaria. Ingeniosamente, se utiliza filtrado para mostrar las filas secundarias con un valor en la clave extranjera que coincida con el valor de la clave en la fila primaria. Esto permite que las aplicaciones muestren las filas secundarias (elementos de línea en el ejemplo anterior) que pertenecen a una fila primaria concreta (factura en el ejemplo anterior). Este concepto subyace a muchas aplicaciones de software empresarial.

Sugerencia

Dividir los datos en diferentes tablas crea un diseño de solución eficaz que puede escalar, pero saber cómo dividir los datos en tablas puede ser difícil. Dataverse contiene muchas de las tablas que la mayoría de las organizaciones necesitarán. El uso de tablas estándar y la ampliación de estas garantizará que está creando soluciones en torno a un método probado y escalable para almacenar los datos que utilizan sus soluciones.