我需要设计一个关系数据库,它将基于Q1,Q2等期间批量加载客户/地址数据。我希望创建一个简单的客户主表,其中包括地址等人口统计数据。挑战在于客户地址可能会在一段时间内发生变化,我需要捕获这些新地址,并将旧地址保留为早期的快照。
我可以轻松地将customerId / quarter设置为每行的唯一特征,但这会为地址保持不变的客户带来许多不需要的重复项。另一种选择可能是将默认季度设置为“ALL”,并仅为具有地址更新的现有客户添加新行。然后由查询/视图选择“全部”,除非指定的四分之一存在(表示更新的地址)
不确定这种情况的最佳方法,我希望其他人可能有一些建议吗?
答案 0 :(得分:1)
我建议这样的设计:
这允许以下几点:
您的查询可以将这些表连接在一起,并根据customer_address表中的有效日期进行过滤。
所有这些都有意义吗?