DW模型图设计:房产相关File、Order及关联主体建模方案咨询
房产交易数据仓库模型设计步骤
1. 先对齐核心需求与Fact表粒度
首先明确所有核心查询的度量粒度,你提到核心Fact表为Order,需要先确认所有核心统计指标(如订单成交量、佣金金额、成交周期等)均为单Order粒度,这是后续所有设计的基础。
2. 处理File与Order的多对多关系
根据查询优先级选对应的方案:
- 若90%以上的高频查询仅需关联Order对应的主File:直接将主File的核心属性(File编号、开立时间、开立渠道、当前状态等)作为退化维度存入Order事实表,非主File的关联关系单独存
order_file_bridge桥接表,仅供给低频的多File关联查询使用 - 若经常需要按任意File维度统计下挂所有Order的指标:保留独立的
dim_fileFile维度表,搭配双向桥接表关联Order事实表,避免完全退化维度后无法高效实现File侧的统计需求
3. Party主体表设计
优先做统一的主体维度避免数据冗余,再搭配角色关联表满足多角色关联需求:
- 先建立统一的
dim_party主维度表,存储所有主体的通用属性:party_id、主体名称、主体类型(自然人/经纪机构/经纪人/产权人等)、通用联系信息 - 分别建立角色关联表:
order_party_role桥接表:字段包括order_id、party_id、party_role(枚举值:买家、卖家、主承接经纪人等)、角色生效时间、失效时间file_party_role桥接表:字段包括file_id、party_id、party_role(枚举值:File申请人、产权人、受托经纪人等)、角色生效时间、失效时间
- 优化项:对于高频查询的固定角色(如Order的买家、主经纪人),可以直接将对应
party_id和核心属性退化到Order事实表中,减少关联次数、提升查询性能,低频使用的角色仍走桥接表查询
4. 关联房产维度
建立dim_property房产维度表,将房产唯一标识property_id直接退化到Order事实表、dim_file维度表中,满足按房产维度关联查询File、Order的需求
5. 设计验证
完成初稿后对照核心查询场景做验证,确保可以高效支撑以下典型查询:
- 按房产属性统计对应所有File、Order的核心指标
- 按File关联的主体(如产权人、经办经纪人)统计下挂所有Order的成交数据
- 按Order关联的主体(如买家、承接经纪人)查询对应关联File的进度数据
注意:优先满足80%的高频查询需求,不要过度设计,退化维度时仅保留高频查询需要的字段,避免事实表过宽影响查询性能。
内容的提问来源于stack exchange,提问作者Netta G
相关产品推荐
相关产品推荐

