假设我正在为一家保险公司设计一个数据库,其中包含以下两个表:
顾客
CustomerID,CustomerName
政策
PolicyID,CustomerID,EffectiveDate,ExpirationDate
如果客户的策略使得策略的到期日期在今天之后,则该客户被视为“活动”.当然,我希望构建许多查询来过滤掉不活跃的客户,反之亦然.我的争论是在“客户”表中添加“活动”字段.
一方面,这将提高我的一堆查询的性能,它看起来更清晰,更容易理解.
另一方面,它必须每天更新.此外,客户是否被视为活动状态完全取决于策略表中的数据.因此,通过添加“活动”列,我创建了一个潜在的场景,其中客户被标记为活动,但他的策略数据会认为他处于非活动状态(反之亦然).换句话说,我正在创建一个数据可能与之相矛盾的设计.
这是不好的做法吗?