了解和评估表关系

评估两个给定表之间的关系时,您需要了解一个表中可能属于另一个实体的实例数量,反之亦然。 例如,使用users表和orders表。 在这种情况下,您希望了解给定​ 用户 ​下了​ 个订单 ​个,以及​ 个订单 ​可能属于多少个​ 用户

了解关系对于维护数据完整性至关重要,因为它会影响计算列维度的准确性。 若要了解详细信息,请参阅关系类型如何计算Data Warehouse中的表。

关系类型 types

两个表之间可以存在三种类型的关系:

One-to-One onetoone

one-to-one关系中,表B中的记录只属于表A中的一个记录。 表A中的记录只属于表B中的一个记录。

例如,在人与驾驶证号码的关系中,一个人只能有一个驾驶证号码,而一个驾驶证号码只属于一个人。

One-to-Many onetomany

one-to-many关系中,表A中的记录可能属于表B中的多个记录。 考虑ordersitems之间的关系 — 一个订单可以包含多个项目,但一个项目属于单个订单。 在这种情况下,orders表为一侧,items表为多侧。

Many-to-Many manytomany

many-to-many关系中,表B中的记录可能属于表A中的多个记录。 反之亦然,表A中的记录可能属于表B中的多个记录。

考虑​ 产品 ​和​ 类别 ​之间的关系:一个产品可以属于多个类别,而一个类别可以包含多个产品。

评估表 eval

根据表之间存在的关系类型,您可以了解如何计算Data Warehouse中的表。 由于这些关系决定了多表计算列的定义方式,因此了解如何识别表关系以及该表属于哪一侧(onemany)非常重要。

可以使用两种方法评估Data Warehouse中给定表对的关系。 第一种方法采用概念框架,该框架考虑表的实体如何彼此交互。 第二个方法使用表的架构

使用概念框架 concept

该方法使用概念框架来描述两个表中的实体如何相互交互。 重要的是要了解,这一框架评估了考虑到这种关系而可能实现的情况。

例如,在考虑用户和订单时,请考虑关系中可能的所有因素。 注册用户在其生命周期内不得下任何订单、仅下一份订单或多份订单。 如果您已启动业务,但尚未下任何订单,则给定用户可能在其生命周期内下许多订单。 构建表是为了适应这种情况。

要使用此方法,请执行以下操作:

  1. 标识每个表中描述的实体。 提示:它通常是名词。 例如,userorders表正显式描述用户和订单。

  2. 识别描述这些实体如何交互的一个或多个动词。 例如,将用户与订单进行比较时,用户会“下单”。 另一方面,订单“属于”用户。

此类型的框架可以应用于Data Warehouse中表的任何配对。 这允许您轻松识别关系的类型、哪个表是一侧以及哪个表是多侧。

一旦确定了描述两个表如何交互的术语,就可以通过考虑第一个实体的一个给定实例与第二个实体的关系来构建两个方向的交互。 以下是每种关系的一些示例:

One-to-One

一个给定人员只能有一个驾驶执照号码。 一个给定的驾驶执照号码只属于个人。

这是一个one-to-one关系,其中每个表都是单面。

One-to-Many

一个给定订单可能包含许多项目。 一个给定项目只属于一个订单。

这是一种one-to-many关系,其中订单表为一侧,物料表为多侧。

Many-to-Many

一个给定产品可能属于多个类别。 一个给定类别可以包含许多产品。

这是一个many-to-many关系,其中每个表是多边。

使用表的模式 schema

第二种方法是使用表模式。 架构定义哪些列是PrimaryForeign键。 您可以使用这些键将表链接在一起,并帮助确定关系类型。

确定将两个表链接在一起的列后,请使用列类型来评估表关系。 以下是一些示例:

One-to-one

如果使用两个表的primary key链接这些表,则每个表中将描述相同的唯一实体,并且关系为one-to-one

例如,users表可能捕获了大多数用户属性(如名称),而补充的user_source表捕获了用户注册源。 在每个表中,一行表示一个用户。

One-to-many

NOTE
你接受客人订单吗? 请参阅访客订单,了解访客订单如何影响您的表关系。

当使用指向primary keyForeign key链接表时,此设置描述了one-to-many关系。 一侧是包含primary key的表,多侧是包含foreign key的表。

Many-to-many

如果以下任一项为true,则关系为many-to-many

  • Non-primary key列正用于链接两个表
  • 复合primary key的一部分用于链接两个表

后续步骤

正确评估表关系对于准确建模数据至关重要。 现在您已了解表如何相互关联,请查看您可以使用Data Warehouse管理器做什么

recommendation-more-help
e1f8a7e8-8cc7-4c99-9697-b1daa1d66dbc