我正在基于业务实体的两个维度在数据仓库中构建一个简单的星形模式:dim_loan
和dim_borrower
。还有一些事实表,例如fact_loan_status
,每个月每个贷款都有一行显示当时的余额,并且FK返回到dim_loan
。
所以这是我的问题:如果dim_loan
具有borrower_id
回到dim_borrower
的FK,是否违反了星型模式?几乎所有关于星型模式的讨论都围绕单个暗表,这些暗表仅与事实表具有FK关系,而与其他暗表没有关系。对于这种简单的一对一关系,创建一个fact_loan_borrower对我来说没有任何意义。
任何建议都将受到欢迎!
如果dim_borrower和dim_loan具有相同的基数,则将两个id(loan_id,借款人ID)都保留在fact_loan_borrower中将有助于您提高性能。您只需一个联接即可从各个维度获取借款人或贷款信息。如果在dim_loan中将floorer_id保留为FK,则需要带入两个联接(如果需要带入借款人信息)。
如果两个维度具有不同的基数,则将低基数的维度与事实表相连接-这将有助于使事实表保持较小。
星型和雪花模式的选择完全取决于您。