• 处理非主键的主键


    靠,怎么能取这个拗口的题目。

    啥子意思?什么是主键?
    我觉得主键数据中不能被修改和删除的区别其他记录的数据。
    什么又是非主键的主键呢?

    很多时候在企业开发中,真正在数据库定义的主键其实并不是主键,通产是XXId定义为主键,但其他列中可能是主键。
    比如:BOM系统中,物料编码应该为唯一,可惜很多bom系统里面是定义它是唯一索引,却不一定是主键。如果在数据层没有定义为主键,这个数据理论和事实上就会被修改。

    在企业其他的引用此BOM的物料编码的时候,一旦BOM系统的物料编码被修改,结果造成下游的数据出现断层,一些数据无法关联对应。

    呵呵,这就是我讲的“非主键”的主键。

    以下说的到的主键就代表的是“非主键”的主键。

    当主键被修改或删除的时候会带来上游数据链和下游数据链的脱节,造成业务上面处理错误。

    比如:象刚才的问题就会造成计算BOM成本的时候少算一些BOM清单。
    而且这种隐含的错误,会在意想不到的时候造成大家对系统的不信任感。


    所以,我们要注意这种隐含主键在整个企业中的影响。
    说了危害,我说说我处理这种主键的方法。

    当然,最简单的方法莫过于直接在数据层定义为主键,不过,不是任何系统都是我开发,理想虽好,但不一定能做到了。

    我的方法是 - 建立异常报告,建立自动恢复功能。

    实现技术很多,但大概方向应该是这样的。

    把主键的变化记录下来,其他的系统通过定时扫描的方式(或者通过远程调用挂接接口的方式)把自身用的数据根据主键变化记录表进行纠正。





  • 相关阅读:
    第三期 预测——7.思考基于模型的方法
    第三期 预测——6.轨迹聚类2在线预测
    第三期 预测——5.数据驱动示例 轨迹簇
    第三期 预测——4.哪个最好
    第三期 预测——2.输入和输出
    第三期 预测——3 模型和数据驱动方法
    第三期 预测——1.简介
    状态和面向对象编程——7.课程大纲
    状态和面向对象编程——7.状态定量
    状态和面向对象编程——6.运动学
  • 原文地址:https://www.cnblogs.com/king_astar/p/547250.html
Copyright © 2020-2023  润新知