时态表(Temporal Tables)是否维护关联数据状态?
时态表是否会维护关联数据的状态?
你的假设完全正确,时态表不会自动维护关联数据的历史状态。
时态表的核心功能是追踪自身表内记录的变更轨迹,只会留存当前表的字段值(包括外键ID),不会自动同步关联表的历史数据。
拿你举的例子来说:当UserTable是时态表时,它会记录某用户当时关联的OfficeId=10,但如果后续Offices表中ID为10的办公室信息(比如地址从圣何塞改为圣克拉拉)发生修改,UserTable的时态记录里不会保存该办公室在用户关联时的具体地址——它只保留外键值,不会自动快照关联表的状态。
如果需要完整保留关联数据的历史状态,你得自行做额外处理:
- 将关联表(比如Offices)也设置为时态表,之后可以通过外键ID,结合时间范围查询到对应时间点的关联数据状态
- 在主表(UserTable)中冗余存储关联表的关键信息(比如当时的办公室地址),但这种方式会增加数据冗余,需要根据业务场景权衡利弊
内容的提问来源于stack exchange,提问作者Tom Crosman
相关产品推荐
相关产品推荐

