设计数据库以存储当前和初始数据集

时间:2013-11-08 00:51:51

标签: database database-design

我想设计一个存储保险单信息的数据库。 (不,我没有建立Healthcare.gov)

政策由PolicyNumber唯一描述。其他一些属性包括EffectiveDateExpirationDatePremium(以及其他)。

这是一个问题 - 由于取消,审核等原因,在撰写政策后,PremiumExpirationDate之类的内容可能会发生变化。

出于我的目的,我需要知道保单和到期日期是什么,因为它是,因为它现在是。但是,像EffectiveDate这样的属性在编写策略时将保持静态。那么,我如何构建一个规范化的数据库来捕获所有这些?

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是创建一个包含所有最新信息的普通策略表。创建另一个包含您要跟踪的历史数据的表。您可能希望在两者上保留时间戳信息,特别是在历史记录表上。您可能希望在主表和历史记录表之间建立1-M关系,因为您可以为任何活动行创建多个历史记录行。缺少历史行意味着没有进行任何更改。

每次进行更改时,策略表中的当前行(或者如果您愿意,相关列)都会复制到历史记录表中,并保存历史记录行。

这种设计的一个问题是,要弄清楚改变了什么(除非客户端可以传递此信息)并且它会浪费一些空间,这可能有点工作。

这种设计的优点是简单,并且可以将所有当前信息保存在一个位置。当前信息是您在大多数系统操作中通常访问的内容(我猜)。