【问题标题】:How to breakdown denormalized table(M:M) to data model (from same table)?如何将非规范化表(M:M)分解为数据模型(来自同一个表)?
【发布时间】:2021-08-08 06:55:42
【问题描述】:

我想问一下如何对同一张表中的数据进行建模

来源表:客户

Fields : cust_id , Firstname , LastName , Address No , Street , Province , PostalCode

成为模特

表:客户

Fields : cust_id , Firstname , LastName

表:房子

Fields : House_id, Address No , Street , Province , PostalCode

表:CUST_HOUSE_RELATION

FIELD : CUST_ID,HOUSE_ID,RELATE_TYPE

信息

  • 1 客户 M 家(地址)和 1 家(地址)M 客户
  • 创建 CUST_HOUSE_RELATION 以解决 M:M 关系
  • 没有表地址(分隔)

问题

  • 我无法定义 HouseID,因为 Source 中没有 addressid(表 customer 包含客户信息和地址信息(没有地址信息的键)。请建议。

【问题讨论】:

  • 这是一次性的数据迁移练习吗?您需要生成密钥。插入房屋记录,捕获id并在插入CUST_HOUSE_RELATION记录时使用。最终模型实际上并不适合输入数据。
  • 请问,如果我生成 House Id,如何加入 HouseId 和 cust_id ?我的意思是我不知道我可以使用哪些字段来连接 HouseId 和 Cust Id
  • 这是一次性的数据迁移练习吗?

标签: database data-modeling data-warehouse datamodel azure-sql-data-warehouse


【解决方案1】:

这是一种方法,但这是否合适取决于您在做什么。

  1. cust_id 列字段添加到house
  2. 从源表加载customerhouse,确保填充house.cust_id
  3. 我假设 house.house_id 会自动生成,但您没有提供足够的信息来说明
  4. house 加载cust_hous_relation(其中包含两个键)
  5. house 中删除cust_id

您没有提供足够的信息来给出正确的解决方案。

【讨论】:

  • 抱歉回复晚了,我正在实施数据仓库(以保留关系和历史数据)为数据集市做准备。我的意思是每天都会自动将数据加载到数据模型中。
  • 数据仓库负载通常包含一个暂存层。这就是你可以应用我上面描述的逻辑的地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2015-02-01
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
相关资源
最近更新 更多