Trabaje con tablas relacionadas
Este ejemplo muestra una técnica muy potente que permite relacionar una tabla con otra sin tener que utilizar afirmaciones JOIN. La técnica resultará familiar para quien haya utilizado entidades antes, ya que se basa en el simple concepto de propiedades con valor de entidad.
La mayoría de bases de datos relacionales contienen claves foráneas. Cuando algunas de las columnas de una tabla son etiquetadas como claves foráneas, ellas hacen referencia a la clave primaria de otra tabla, creando entonces una conexión entre ambas tablas. Por ejemplo, una tabla de órdenes puede tener claves foráneas con las tablas de clientes y producto, en lugar de replicar la información acerca de ellas directamente. Tome una base de datos típica con una estructura rica.
La estructura de tablas relacionadas por medio de claves foráneas puede ser visualizada como un grafo.
Cuando se construye la EntityStore correspondiente a RelationalDatabase, algunas propiedades especiales son construidas a partir de claves foráneas.
Vea los órdenes de tipo de entidad: La clave foránea "customerNumber" apunta a la tabla "customers". El marco automáticamente reconoce esto y crea una nueva propiedad llamada "customers" (subrayada en los cuadros de resumen) que regresará objetos Entity. De esta forma, para cada entidad "orders" existe una entidad "customers" correspondiente. Registre el EntityStore para verificar esto.
Ahora usted puede llamar EntityValue en una entidad de tipo "orders".
La tabla "orders" es el objetivo de una clave foránea de las tablas "orderdetails"; esto le ha permitido al marco crear un mapeo inverso desde la tabla "orderdetails", que contienen resultados del tipo "orders" teniendo una propiedad llamada "orderdetails" que toma los valores EntityClass.
La gran ventaja de tener estas envolturas simbólicas alrededor de claves foráneas es que uno puede encadenar la extracción de propiedades en EntityFunction. Por ejemplo, comience desde una entidad del cliente y verifique quién es el representante de ventas y quién es el administrador de dicho empleado.
Esto es muy natural para cualquier persona que esté familiarizada con Wolfram Language, pero es muy complicado si no sabe usar estas propiedades especiales. Lo que normalmente haríamos es pensar acerca de esto en términos de afirmaciones JOIN.
Otra gran ventaja de usar estas tablas relacionadas es que uno también puede usarlas para realizar agregaciones sin pensar en términos de consultas. Por ejemplo, este es el valor total de una orden.
La consulta equivalente en términos de agregaciones hubiera sido la siguiente.