继承历史属性的实体表设计
实体有历史变化,历史变化要求能回溯,有些属性要继承到现状中,即要求从现在的实体能迅速查询到有历史的属性。以房屋为例,房屋会发生现状变更,或者有测绘的实测替换预测,一般都要求能查询出所有的历史情况,所以要保留历史情况,但是过往房屋登记的产权或抵押,现状也要能迅速查询到。
设计表如下:
替换时,根据新旧ID加入记录(OldFID,NewFID,NewFID),并且执行更新:
update XXX set NowFID=NewFID where NowFID=OldFID。
这样,既保持了历史链,又能从NowFID迅速查询到所有的旧FID,进而查询到历史业务属性。
设计表如下:
字段 | 说明 |
OldFID | 被替换的房ID |
NewFID | 替换后的房ID |
NowFID | 现状的房ID,默认值与NewFID一样 |
替换时,根据新旧ID加入记录(OldFID,NewFID,NewFID),并且执行更新:
update XXX set NowFID=NewFID where NowFID=OldFID。
这样,既保持了历史链,又能从NowFID迅速查询到所有的旧FID,进而查询到历史业务属性。