背景) 我已經通過建立一個事實表我們的庫存數據的歷程,將在理論作爲我們的倉庫夜間快照。所記錄的是諸如數量,重量,位置,狀態等信息。數據非常精細,在許多情況下與單個實體沒有特別的關聯(我們的源數據庫將庫存數據記錄爲具有三個主鍵:牌照又名托盤,產品和包裝類型 - 所以它基本上有3個業務密鑰,沒有代理鍵)。慢慢改變事實表?
的目標是能有我們的倉庫管理系統的數據的100%準確的娛樂,這是可見的,任何一個歷史上的今天。因此,我可以查看8月4日1234號產品XYZ有多少托盤。
問題1) 現在,我已經建立了這個事實表結構看起來像一個漸變維度,類型2.這是錯的?我一直在積累快照事實表,並開始質疑我的設計。這種情況下的最佳做法是什麼?
問題2) 如果我的設計沒問題,我該如何配置Analysis Services以便識別FACT表中的DateStart和DateEnd列?我發現了一些關於如何爲維度配置的信息,但它似乎不適用於事實表。
僅供參考 - 我的事實表的結構(約列加註釋):
CREATE TABLE [dbo].[FactInventory](
[id] [int] IDENTITY(1,1) NOT NULL, (fact table only surrogate key)
[DateStart] [datetime] NULL, (record begin date)
[DateEnd] [datetime] NULL, (record end date)
[CreateDate] [datetime] NULL, (create date of the inventory record in src db)
[CreateDateId] [int] NULL, (create date dimension key)
[CreateTimeId] [int] NULL, (create time dimension key)
[LicensePlateId] [int] NULL, (pallet id dimension key)
[SerialNumberId] [int] NULL, (serial number id dimension key)
[PackagedId] [int] NULL, (packaging type id dimension key)
[LotId] [int] NULL, (inventory lot id dimension key)
[MaterialId] [int] NULL, (product id dimension key)
[ProjectId] [int] NULL, (customer project id dimension key)
[OwnerId] [int] NULL, (customer id dimension key)
[WarehouseId] [int] NULL, (warehouse id dimension key)
[LocationId] [int] NULL, (location id dimension key)
[LPStatusId] [int] NULL, (licenseplate status id dimension key)
[LPTypeId] [int] NULL, (licenseplate type id dimension key)
[LPLookupCode] [nvarchar](128) NULL, (licenseplate non-system name)
[PackagedAmount] [money] NULL, (inventory amount - measure)
[netWeight] [money] NULL, (inventory netWeight - measure)
[grossWeight] [money] NULL, (inventory grossWeight - measure)
[Archived] [bit] NULL, (inventory archived yes/no - dimension)
[SCDChangeReason] [nvarchar](128) NULL (auditing data for changes)
我想你可以說它是一個快速變化的事實,但我想每天至少捕捉一次所有這些細節的「快照」。 – rrydman 2009-08-21 22:38:53