【SQL】多原始表精确连结的思路与注意事项

       当需要将多原始表进行连结且精度较高时(往往这些原始表之间个别字段具有相似性,进行字段清洗后具备精确连结的条件),可行的思路如下:

1、确定最终呈现形式与多表间的连结关系。在进行字段清洗前需要优先确定最终需要保留的字段与多表连结字段大致的对应关系(一对一?一对多?多对多?)。确定是否可以将一表确定为核心表以方便后续进行连结精确性检验,确保数据连结质量。核心表应当具有以下特点:

  1. 核心表往往数据条目最多。
  2. 核心表具有唯一性,即该表内的某一字段信息被笛卡尔积展开成多条信息后信息无效。如:淘宝后台储存的某个店铺某日的销售额信息可以被认为具有唯一性。(如果出现在多行,说明连结展开时发生了错误,因为一般某日的销售额信息很少会被展开使用。)
  3. 核心表是最终成表的基础表,即在核心表上加入其他表信息获得终表。
  4. 核心表可以设置为检查标准。

2、设计关键词表以连结各表。当能够确立核心表时,通过设置关键词表可以将所有清洗操作作用于原始表外,能够对原始表数据进行比较好的保护。如不能确立核心表,则需要思考是否可以将某一关键词表设计为核心表(往往在少量关键信息出现多对多关系时使用,但效果不好)。

3、确立终表精确性检查标准。由于目的是实现精确连结,因此需要在一开始确定检查标准以保证清洗之后结果的精确性。往往终表条数与核心表条数相同,匹配信息无缺失、错误为核心标准。

注意:如果连结字段出现大量多对多时,往往很难做到“精确匹配”到“精确性检查”这样的过程,因此很难做到精确连结,不在讨论范围内。

      以一个案例的形式进一步解释上述过程:

      现在有《药品区域配送表》和《药品具体信息表》,需要将药品的配送信息与中选价格信息呈现在终表中。《药品区域配送表》和《药品具体信息表》展示如下:

 

步骤一:确定展现形式与连结关系。

        最终需要展示“采购时间”、“地区名称”、“标化名称”、“标化规格”、“标化企业名称”、“采购量”、“药品通用名”、“规格包装”、“拟中选价格(元)”。由于采购量是唯一信息,不可被展开,因此将《药品区域配送表》作为核心表。

步骤二:设计关键词表以连结各表。

         将连结关键词“标化名称”、“标化规格”、“药品通用名”和“规格包装”设计为关键词表,展示如下所示。

 

 3、确立终表精确性检查标准。

       终表需要与《药品区域配送表》的条目相同,且匹配信息没有缺失。

       使用Navicat操作MySQL进行表的匹配。代码如下:

       结果如下所示:

       无信息缺失 ,终表条数与核心表条数一致,说明连结成功。

(本案例比较简单,比较复杂的字段连结可以使用Python或其他软件进行辅助性的数据清洗。)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值