• 【MySQL】替换件需求


    先上个表结构吧:

    CREATE TABLE `tm_part_replace` (
      `ITEM_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
      `OWNER_CODE` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-1' COMMENT '经销商代码',
      `PART_NO` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '配件代码(原始)',
      `OPTION_PART_NO` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '替换件代码',
      `SHIFT_DIRECT` int(8) DEFAULT NULL COMMENT '替换方向 10041001单向 10041002双向',
      `IS_DELETED` tinyint(4) DEFAULT NULL COMMENT '逻辑删除 0否 1是',
      `CREATE_AT` datetime DEFAULT NULL COMMENT '创建时间',
      `CREATE_BY` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
      `UPDATE_AT` datetime DEFAULT NULL COMMENT '更新时间',
      `UPDATE_BY` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人',
      `RECORD_VERSION` int(11) DEFAULT NULL COMMENT '乐观锁记录',
      PRIMARY KEY (`ITEM_ID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='配件替换件表(确认)';

    配件存在着一些替换关系

    就是配件B可以代替配件A去使用,在需要使用配件A的情况没有配件A,可以使用配件B来代替

    这是一种情况,还有一种情况是,配件A可以替换配件B,配件B也可以替换配件A使用

    那这种替换是双向的,所以就是两种替换情况,单向的和双向的

    零件主表存储了各种零件记录,只取零件代码作为关键字段存储

    替换件和配件存储都是主表的零件代码字段来构成替换关系。

    如果是单向,就只存储一条记录(A -> B)

    如果是双向,就要存储两条记录,表示B也是A的替换件(A -> B + B -> A)

    单向10041001

    双向10041002

    字典数据表示

    导入的数据:

    样本数据用例:

    mysql> SELECT * FROM tm_part_replace;
    +---------+------------+-----------------+-----------------+--------------+------------+-----------+-----------+-----------+-----------+----------------+
    | ITEM_ID | OWNER_CODE | PART_NO         | OPTION_PART_NO  | SHIFT_DIRECT | IS_DELETED | CREATE_AT | CREATE_BY | UPDATE_AT | UPDATE_BY | RECORD_VERSION |
    +---------+------------+-----------------+-----------------+--------------+------------+-----------+-----------+-----------+-----------+----------------+
    |       1 | -1         | TEST-PART-NO-06 | TEST-PART-NO-04 |     10041001 | NULL       | NULL      | NULL      | NULL      | NULL      | NULL           |
    |       2 | -1         | TEST-PART-NO-06 | TEST-PART-NO-03 |     10041002 | NULL       | NULL      | NULL      | NULL      | NULL      | NULL           |
    |       3 | -1         | TEST-PART-NO-03 | TEST-PART-NO-06 |     10041002 | NULL       | NULL      | NULL      | NULL      | NULL      | NULL           |
    |       4 | -1         | TEST-PART-NO-05 | TEST-PART-NO-04 |     10041001 | NULL       | NULL      | NULL      | NULL      | NULL      | NULL           |
    |       5 | -1         | TEST-PART-NO-03 | TEST-PART-NO-04 |     10041002 | NULL       | NULL      | NULL      | NULL      | NULL      | NULL           |
    |       6 | -1         | TEST-PART-NO-04 | TEST-PART-NO-03 |     10041002 | NULL       | NULL      | NULL      | NULL      | NULL      | NULL           |
    +---------+------------+-----------------+-----------------+--------------+------------+-----------+-----------+-----------+-----------+----------------+
    6 rows in set (0.03 sec)
  • 相关阅读:
    在Windows环境下搭建redis
    三种主流的Web服务实现方案(REST+SOAP+XML-RPC)简述及比较
    ASP.NET Web API身份验证和授权
    quartz 设置时间格式
    服务端发post请求产生的编码问题
    大型网站的灵魂——性能
    大型网站系统架构的演化
    c# url自动解码解决方案
    C# RSA非对称加密实现
    .net上传图片之使用第三方平台七牛上传图片接口
  • 原文地址:https://www.cnblogs.com/mindzone/p/15503661.html
Copyright © 2020-2023  润新知