我正在 SQL Server 2008r2 中创建一些企业主查找表。我需要保留一个特定于域的表。例如,Gender 可以是一个表,City 可以是另一个表。在每个表格中,我都保留开始日期和结束日期以保留历史记录。
现在我被要求对这些进行版本控制,这样你就会知道 V1 有这些代码,而 V2 有这些更新的代码。考虑一个查找表非常简单。以 Gender 为例,您可以有一个 Gender 表、一个 GenderVersion 表和一个 GenderToGenderVersion 链接表。这将需要每次查找 2 个额外的表。只有几个可以管理的表,但我希望能找到一个更好的方法来使用许多查找表
几个要求。
- 如前所述,查找表必须是特定于域的。我无法将它们结合起来。
- 初级程序员必须能够构建一个选择语句来查找基于特定版本的所有外观值。
有任何想法吗?我讨厌拥有 3 倍所需表格的想法。
[编辑] 附加细节
我们需要能够准确地确定特定版本中的代码。我们需要未从先前版本中编辑或删除的代码成为下一版本的一部分。我们确实在代码中维护了开始和结束日期。除了开始日期和结束日期之外,还有版本标签。
这是使用 Race 的示例模型。这是与
RaceVersion 表
- 种族版本ID
- 版本标签
- 开始日期
- 结束日期
RaceToRace 版本
- 种族ID
- 种族版本ID
比赛表
- RaceID(仅用于主代码数据库)
- RaceCode(用于使用这些代码的所有其他系统)
- 比赛说明
- 开始日期
- 结束日期
代码和版本都获取日期可搜索的生效日期。你可以找到一个版本,然后关联到代码
每当代码发生更改时,在本例中为 Race,您可以添加新版本,然后查找当前有效的所有行并填充链接表。
这适用于几组代码。我希望这样的功能可以更好地扩展。