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