我有一个名为h_company
卫星的集线器并连接到它s_company
,其中包含有关我的 DWH 中公司的所有描述性信息。
在我的源数据库中,我有一个名为 的映射表company_branch
,它将公司映射到某个分支(一列是company_id,第二列是branch_id)。重要说明:卫星中不存在branch_ids_company
列。
我的源数据库中有第三个表,名为branch
,它由branch_id和description列组成。这将是一个完美的reference_table
,因为它不包含很多记录(仅 30 个分支),它不会发生太大变化并且具有参考表的结构(id 和描述列)。
我的问题是:建模公司 <--> 分支关系的最佳方法是什么?
理想的情况是,如果卫星
s_company
有branch_id列,那么基本上我可以将branch
表建模为我的 DWH 中的参考表,然后在 s_company 卫星上加入。但不幸的是,卫星中不存在branch_ids_company
列。我的方法是将
company_branch
表建模为链接,连接h_company
并h_branch
(从company_branch
表创建)并创建s_branch
卫星(从branch
表创建)。但是这种方法看起来有点矫枉过正,因为分支并不是真正的业务对象,只是附加信息(完美的参考表)和分支卫星将只包含 30 条记录。
在这种情况下,您将如何建模公司 <--> 分支机构关系?
表:
h_company 列: company_id、technicall_columns
s_company 列: company_id、desctiptive_columns(没有 branch_id)、technicall_columns
company_branch 列: company_id、branch_id
分支列: branch_id、描述