-1

我有以下尺寸:

在此处输入图像描述

我在我的数据保险库方案中创建了这两个链接之间的以下关系。 在此处输入图像描述

这是对的吗?是否允许在没有集线器的情况下直接连接链接?如果没有,我该怎么做?船名或船地址可以是业务密钥吗?

4

1 回答 1

1

将一个链接加入另一个链接不是数据保险库标准中的有效方法。

在我们开始之前,您当前的模型存在一些问题,表明您对数据保险库存在误解。

  • OrderID 不能是链接表上的主键,如果曾经对订单进行编辑,您将拥有重复的主键。
  • 您询问 ShipName 或 ShipAddress 是否可以是业务密钥,这表明您没有完全理解业务密钥的数据仓库概念。业务密钥意味着持有该密钥的新中心。它们并非不可能,但是当您有两个同名的客户或一个客户更改地址时会发生什么。我希望它更有可能看到客户 ID,然后将姓名和地址附加到客户中心。

我认为您在这里有两个选择:

首先假设您有一个订单中心,然后将两个链接表都连接到它,并且订单和订单详细信息之间的连接在数据保险库中保持隐式\间接。您需要一个附加到订单详细信息链接的卫星来保存单价等。这是一种相对简单的方法,但可能存在缺陷。例如,如果一个订单上可以多次使用相同的产品,则存在丢失信息的风险,或者充其量您必须处理多个活动卫星并驱动关键关系。

第二种选择是认为订单详细信息本身就是一个业务概念,因此应该有自己的中心(订单行项目或类似概念)。现在,新中心以一对多关系链接到订单,并单独链接到产品中心。逻辑现在更简单了,但您必须构建更多对象。

于 2020-02-04T17:32:16.570 回答