The*_*uad 3 sql-server-2008 normalization database-design
我正在设计一个跟踪 IT 硬件的资产管理数据库。我决定使用超类型/子类型设计。我现在想跟踪设备更改的历史记录。我想使用单独的历史表,但我无法决定如何跟踪对子类型表所做更改的历史记录。
如果我为每个子类型表使用单独的历史表,我可以通过将它们与超类型历史表连接来重建记录,除非子类型历史表独立于超类型历史表而改变。独立地,我的意思是对超类型表中的数据进行了x 次更新,创建了x 次超类型历史记录,对子类型表进行了y 次更新,创建了y次子类型历史记录。如果在同一天进行更改,我将如何重建记录?
这是对超类型/子类型的良好使用,还是我应该对表进行非规范化?否则,有人可以建议任何方法来解决此类设计的历史问题吗?
使用 MS SQL Server 2008。
这是一个非常简化的 ERD:
听起来您想要的是事务时间时态表的实现。这比听起来要难。
有效时间,捕捉变化的现实的历史,交易时间,捕捉变化表的状态序列,是正交的,因此可以单独使用或协同应用。支持两者的表被称为“双时态表”。
参考:在 SQL 中开发面向时间的数据库应用程序,Richard Snodgrass,第 20 页。
这本书是我几年前研究这些东西时唯一能拿到的书。现在您可以从作者的网页下载本书的 PDF 和随附的代码。
较新的材料可能更有用。他的网页上有链接。
归档时间: |
|
查看次数: |
1936 次 |
最近记录: |