数据量小的数据该采用什么方式来构造数据映射关系?

数据量小的数据该采用什么方式来构造数据映射关系?

最近,客户提出一个需求中有一个方法,需要通过两个属性获取它所对应的值,而这种映射关系由客户提供。

刚接收这种映射关系时,我第一时间想到的是用数据库来存储映射关系,但是我还得需要写添加和查询接口,瞬间觉得太繁琐了。后面想到另外一种方式,采用枚举的方式,用枚举类写完后,感觉比较简单明了。(注:枚举类只能用于数据量小映射关系,如数据量大建议采用数据库的方式)

数据映射关系图如下:
在这里插入图片描述
枚举类:

package com.shdsd.plugin.Enum;

public enum PPSPAutoCreateEnum {
    
    AUTO_CREATE_VALUE_KEY1("Omni", "Product", "2004-OmniChannel-dev"),
    AUTO_CREATE_VALUE_KEY2("Omni", "Program", "2203-M BOSS"),
    AUTO_CREATE_VALUE_KEY3("Omni", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY4("Omni", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY5("R&D", "Product", "2012-Campaign"),
    AUTO_CREATE_VALUE_KEY6("R&D", "Program", "2203-M BOSS"),
    AUTO_CREATE_VALUE_KEY7("R&D", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY8("R&D", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY9("Data", "Product", "2128-IMP"),
    AUTO_CREATE_VALUE_KEY10("Data", "Program", "2203-Mc BOSS"),
    AUTO_CREATE_VALUE_KEY11("Data", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY12("Data", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY13("PMO & Controlling", "Product", "2210-eTraining2.0"),
    AUTO_CREATE_VALUE_KEY14("PMO & Controlling", "Program", "2203-M BOSS"),
    AUTO_CREATE_VALUE_KEY15("PMO & Controlling", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY16("PMO & Controlling", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY17("Restaurant", "Product", "2118-生产"),
    AUTO_CREATE_VALUE_KEY18("Restaurant", "Program", "2203-Mc BOSS"),
    AUTO_CREATE_VALUE_KEY19("Restaurant", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY20("Restaurant", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY21("Enterprise Business", "Product", "2118-生产"),
    AUTO_CREATE_VALUE_KEY22("Enterprise Business", "Program", "2203-M BOSS"),
    AUTO_CREATE_VALUE_KEY23("Enterprise Business", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY24("Enterprise Business", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY25("Enterprise Finance", "Product", "2118-生产"),
    AUTO_CREATE_VALUE_KEY26("Enterprise Finance", "Program", "2203-Mc BOSS"),
    AUTO_CREATE_VALUE_KEY27("Enterprise Finance", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY28("Enterprise Finance", "service", "2126-Data Service"),

    AUTO_CREATE_VALUE_KEY29("Infrastructure", "Product", "2118-生产"),
    AUTO_CREATE_VALUE_KEY30("Infrastructure", "Program", "2203-M BOSS"),
    AUTO_CREATE_VALUE_KEY31("Infrastructure", "project", "2051-TES"),
    AUTO_CREATE_VALUE_KEY32("Infrastructure", "service", "2126-Data Service");

  
    private String projectType;
  
    private String ppspCustomFieldValue;

    private String value;

    PPSPAutoCreateEnum(String projectType, String ppspCustomFieldValue, String value) {
        this.projectType = projectType;
        this.ppspCustomFieldValue = ppspCustomFieldValue;
        this.value = value;
    }

    public static String getValueByProjectTypeAndPPSPCustomFieldValue(String projectType, String ppspCustomFieldValue) {
        PPSPAutoCreateEnum[] changeHandleEnums = values();
        for (PPSPAutoCreateEnum ppspAutoCreateEnum : changeHandleEnums) {
            if (ppspAutoCreateEnum.getProjectType().equals(projectType) && ppspAutoCreateEnum.getPpspCustomFieldValue().equals(ppspCustomFieldValue)) {

                return ppspAutoCreateEnum.getValue();
            }
        }
        return null;
    }


    public String getProjectType() {
        return projectType;
    }

    public String getPpspCustomFieldValue() {
        return ppspCustomFieldValue;
    }

    public String getValue() {
        return value;
    }
}

调用方法如下:

String projectName = PPSPAutoCreateEnum.getValueByProjectTypeAndPPSPCustomFieldValue(leadTeamNameCategory, pPspCustomFieldValue);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值