假设我有名为客户、国家、州和城市的数据库表。单个客户将有一个 CityID 字段,该字段链接到 Cities 表。每个城市都有一个 StateID 字段,该字段链接到 states 表,对于国家/地区也是如此。
当我们知道客户的完整地址时,这一切都很简单,但有时我们只有他们的国家,有时只有国家。我们并不总是拥有这座城市。
我们如何处理这个?我们希望能够拯救国家,但如果我们不了解这座城市,我们就做不到。
我们可以将 StateID 和 CountryID 字段添加到客户表中,但这听起来像是糟糕的设计,并且可能导致数据不一致。
有人有什么建议吗?我确信这是一个非常标准的问题,但我找不到一个好的答案。
PS 在回答下面 Jaffar 的评论时,这样做的原因是我们需要对我们的客户分布在哪里进行一些分析。客户向医院集团出售极其昂贵的医疗扫描仪,并且并不总是知道在订购扫描仪时哪个站点将接收扫描仪。因此,我们需要能够指定尽可能多的信息,可能只是国家,可能是州,也可能是城市。
我们目前只需要为美国执行此操作,但如果客户希望将分析扩展到其他国家/地区,我们更愿意提供灵活的方法。