我有一个具有Gender属性的Person Satellite。从源系统,此属性的值可以是:F,M,FEMALE或MALE。对于Data Vault建模,以下两种方法中的哪一种是正确的?
将数据存储在Gender中,因为它来自资源,并且在Business Vault或数据集市中将数据标准化为仅限女性和男性
创建交叉引用表以将F映射到FEMALE和M到MALE,同时加载人员卫星,使用交叉引用表将F转换为FEMALE和M转换为MALE。
我正在使用支持列压缩的Amazon Redshift。
答案 0 :(得分:1)
我通过电子邮件向数据库建模方法的创建者Daniel Linstedt发送电子邮件,问他同样的问题。他的回答是:
“我通常会将其存储起来,然后将其翻译到商业DV的路上。这样,如果业务改变它的想法,我们可以重新编写翻译规则而不影响历史。但不仅仅是我已经看到了源系统可以提供超出可接受范围的值。不要试图转换到原始DV,这样做会破坏可审计性。“
答案 1 :(得分:0)
当您拥有一个随时间变化的非常复杂的业务逻辑但是F / Female和M / Male映射是一个非常简单和稳定的逻辑时,数据库概念很有用。交叉引用会让这里的事情过于复杂。我只是将值标准化为F / M并使用char(1)列而不进行压缩。