Wolfram 语言

使用相关表格

此范例显示了一种非常强大的技术,允许您将一个表与另一个表相关联,而无需求助于 JOIN 语句。对于之前使用过实体的人来说,这种技术听起来很熟悉,因为它依赖于实体值属性的简单概念。

大多数关系数据库都包含外键。当表的某些列标记为外键时,它们引用另一个表的主键,从而在两个表之间创建连接。例如,订单表可能具有客户和产品表的外键,而不是直接复制有关这些的信息。采用具有丰富结构的典型数据库。

通过外键相关的表的结构可以被视为图。

构造与 RelationalDatabase 对应的 EntityStore 时 ,会从外键构造一些特殊属性。

查看实体类型订单:外键 "customerNumber" 指向 "customers" 表。框架会自动识别该属性并创建一个名为 "customers" 的新属性(在摘要框中加下划线),该属性将返回 Entity 对象。以这种方式,对于每个 "orders" 实体,存在相应的 "customers" 实体。注册 EntityStore 以验证这一点。

现在,您可以在 "orders" 类型的实体上调用 EntityValue

"orders" 表是 "orderdetails" 表中外键的目标; 这允许框架从 "orderdetails" 表创建逆映射,这导致类型 "orders"具有一个获取 EntityClass 值,名为 "orderdetails" 的属性。

在外键上使用这些符号包装器的一大优点是可以在 EntityFunction 中链接属性提取。例如,从客户实体开始,检查他们的销售代表是谁以及该员工的经理是谁。

对于习惯使用 Wolfram 语言的人来说,这似乎很自然,但是如果不使用这些特殊属性,它会非常复杂。通常做的是用 JOIN 语句来考虑这个问题。

使用相关表的另一大优势是,人们也可以使用它们来执行聚合,而无需考虑查询。例如,这是订单的总价值。

聚合方面的等效查询如下。

相关范例

de en es fr ja ko pt-br