【发布时间】:2017-06-07 18:07:52
【问题描述】:
我有一个维度表和几个支腿。
create table dimFoo (
FooKey int primary key,
......
)
create table triggerA (
FooKey int references dimFoo (FooKey),
Value varchar(255),
primary key nonclustered (FooKey, Value)
)
create table triggerB (
FooKey int references dimFoo (FooKey),
Value varchar(255)
primary key nonclustered (FooKey, Value)
)
create table triggerC (
FooKey int references dimFoo (FooKey),
Value varchar(255)
primary key nonclustered (FooKey, Value)
)
这些支腿表是否应该合并到一张表中?
create table Triggers (
FooKey int references dimFoo (FooKey),
TriggerType varchar(20), // triggerA, triggerB, triggerC, etc....
Value varchar(255),
primary key nonclustered (FooKey, TriggerType, Value)
)
【问题讨论】:
-
我想了解他们为什么是支腿。它们看起来像与维度表本身一对一的文本字段(在 FooKey 上键入),因此听起来它们应该只是在维度表中作为列。
-
每个 foo 有很多文本项。这是多对一的关系。
-
那么,如果这些表上有 PK,它会在 fookey + 值上吗?
-
是的,没错。
-
组合起来后,它开始看起来更像一个事实表。
标签: sql data-warehouse dimensional-modeling