Sql server sql多值维

Sql server sql多值维,sql-server,data-warehouse,business-intelligence,dimensional-modeling,Sql Server,Data Warehouse,Business Intelligence,Dimensional Modeling,(这是我问的第一个问题,所以请大家耐心听我说) 我在SQL Server 2014 Enterprise上创建了一个数据仓库,我正在努力将一个事实映射到一个维度中的多个值 设想一个数据中心,其服务器为特定服务和客户保留。 这些服务器具有特定的组件,如网络适配器、CPU或操作系统 事实表中的几行如下所示: ServerID CustomerID OSID ServiceID NetworkGroupID CPUID 1 1 1

(这是我问的第一个问题,所以请大家耐心听我说)

我在SQL Server 2014 Enterprise上创建了一个数据仓库,我正在努力将一个事实映射到一个维度中的多个值

设想一个数据中心,其服务器为特定服务和客户保留。 这些服务器具有特定的组件,如网络适配器、CPU或操作系统

事实表中的几行如下所示:

ServerID   CustomerID   OSID   ServiceID   NetworkGroupID  CPUID
1           1            1        1           1               1
2           1            2        1           2               1
3           2            1        2           2               2
服务器1和2属于客户1。服务器1正在运行操作系统1,另一个操作系统2正在运行。两者都提供服务1。 服务器1有一组标识为“1”的网络适配器,其他2个。这些集合包含多个网络适配器(一些是虚拟的,一些是物理的)

我的网络维度具有属性ID和NetworkAdapterName,我需要该ID多次出现,如下所示:

ID   NetworkAdapterName
1      IntelAdapter#1
1      IntelAdapter#2
1      VirtualAdapter#1
2      IntelAdapter#1
2      DellAdapter#1
3      VirtualAdapter#1
3      VirtualAdapter#2
我想我需要一些子维度作为桥梁,如下所示:

NetworkGroupID   NetworkID
  1              1
  1              2
  1              3
  2              1
  2              5
  3              3
  3              4

NetworkID NetworkAdapterName
1         IntelAdapter#1
2         IntelAdapter#2
3         VirtualAdapter#1
4         VirtualAdapter#2
5         DellAdapter#1
但是,既然存在与NetworkGroupID具有相同值的多个外观,那么我如何定义从事实表到桥接维度的主键或关系呢

(CPU和操作系统也是如此,但一旦我让它为网络适配器工作,我就可以为其他组件工作了。)

编辑: 最后,我想在SSAS中构建一个多维数据集,该多维数据集可以显示一台服务器拥有的多个组件。

您可以创建一个表(或维度)来定义
网络组

CREATE TABLE NetworkGroup (
    NetworkGroupID int          not null PRIMARY KEY,
    Name           nvarchar(50) null
);
然后使用您的“桥接”表(也称为“桥接”)将其与您的
网络连接起来
表:

CREATE TABLE NetworkGroupNetwork (
    NetworkGroupID int not null,
    NetworkID      int not null,

    CONSTRAINT PK_NetworkGroupNetwork
        PRIMARY KEY (NetworkGroupID, NetworkID),

    CONSTRAINT FK_NetworkGroupNetwork_NetworkGroup
        FOREIGN KEY (NetworkGroupID)
        REFERENCES NetworkGroup (NetworkGroupID),

    CONSTRAINT FK_NetworkGroupNetwork_Network
        FOREIGN KEY (NetworkID)
        REFERENCES Network (NetworkID)
);

这也是一本值得一读的书。这是我一直在思考的问题,但是我如何才能创建一个从PK网络组到NetworkGroupNetwork中的复合PK的约束呢;约束从
NetworkGroupNetwork
中的一列到
NetworkGroup
的主键。与事实表(CustomerID列)和客户表之间的内容类似。我现在觉得很傻,当然这是可行的:D看起来很有希望,我还需要几分钟来验证结果。我仍然需要弄清楚如何将它们放入SSASexactly中的多维数据集中;)谢谢你的帮助!在SSAS中,我必须将NetworkGroupNetwork定义为另一个度量组(事实表),并通过NetworkGroupNetwork在原始事实表和dimNetwork之间建立多对多关系