我創建的SQL Server 2008R2一些企業主查找表。我需要保留特定於某個域的表格。例如,性別將是一張桌子,而城市可能是另一張桌子。在每張表格中,我保留開始日期和結束日期以保留歷史記錄版本查找表
現在我被要求這些版本,所以你會知道像V1了這些代碼和V2有這些更新的代碼。考慮一個查詢表是非常簡單的。例如,使用Gender可以有Gender表,GenderVersion表和GenderToGenderVersion連接表。這將需要每個查找2個額外的表。只需幾桌是可控的,但我希望能得到一個想法更好的方法有許多查找表
一些要求做到這一點。
- 如前所述,查找表必須是特定的域。我不能結合 他們。
- 初中級的程序員必須能夠建立一個選擇 聲明基礎上找到一個特定版本的所有的外觀值。
任何想法?我討厭擁有3x所需桌子的想法。
[編輯] 其他細節
我們需要能夠準確地確定哪些代碼是在一個特定的版本。 我們需要未經編輯或從以前版本中刪除的代碼才能成爲下一個版本的一部分。 我們會在代碼中保留開始日期和結束日期。版本標籤除了開始日期和結束日期之外。
下面是使用賽示例模型。這與
RaceVersion表
- RaceVersionID
- VersionLabel
- 起始日期
- 結束日期
RaceToRaceVersion
- RaceID
- RaceVersionID
賽表
- RaceID(只是用於主代碼DB)
- RaceCode(用於使用這些代碼所有其他系統)
- RaceDescription
- 起始日期
- 結束日期
兩個密碼和版本獲取日期搜索的生效日期。 你可以找到一個版本,然後與代碼相關
每當代碼出現變化,在這種情況下,可以添加一個新版本,然後查找所有當前有效的行並填充鏈接表。
這適用於幾組代碼。我希望像這樣的功能可以更好地擴展。
這是數據倉庫中的常見情況;您可能需要查看[緩慢變化的維度](http://en.wikipedia.org/wiki/Slowly_changing_dimension),瞭解處理這些版本的不同方法。 – Pondlife 2013-05-06 22:48:48
我有幾個想法,但方法真的取決於*爲什麼*你需要這樣做。在這裏,如果我需要知道版本1中的哪些性別,我會從版本控制中檢出標記爲「v1.0」的表格「Gender」。 – 2013-05-06 22:59:32
Pondlife - 我的「代碼」表是第二類SCD的。 (請參閱我在帖子中編輯的編輯)這是我採取的初始方法,通常應該是所需的一切。然而,委員會決定他們絕對需要在日期特定類型2 SCD之上的版本標籤。 – user2356282 2013-05-06 23:34:57