基于JAVA、JAVASCRIPT、SQL实现产品属性匹配储位ID的高效方案
储位属性匹配逻辑的高性能实现方案
现有一张储位定义表,每个产品拥有专属的ATTRIBUTE1、ATTRIBUTE2、ATTRIBUTE3、ATTRIBUTE4、ATTRIBUTE5、ATTRIBUTE6属性,需依据这些属性匹配对应的储位(DEPOSIT_ID)。
储位定义表结构及数据
DEPOSIT_ID ATTRIBUTE1 ATTRIBUTE2 ATTRIBUTE3 ATTRIBUTE4 ATTRIBUTE5 ATTRIBUTE6 41 * 006|001 * 0M * * 40 * 003|006 41|29 !94|46 !E5|E6 * 39 * 003|006 45 !94 * * 38 * 003|006 10|59 * 18|P5 * 37 * 001 23 !94 * * 36 * 001 26|SSH !57 * * 35 * 001 24|25 !81|57|0M * * 34 * 001 22 !57 !Q1|O3 * 33 * 001 21 !81|57 B7 * 32 * 001 SSJ|62 !81|57 * 9FA
匹配规则说明
"*" 表示可接受任意有效属性值
"|" 表示可匹配其中任意一个值(例:006|001可匹配006或001)
"!" 表示不可匹配该值(例:!81|57表示不可匹配81或57)
补充说明
Note: a "*" for ATTRIBUTE1 would be a value = "GH" a "*" for ATTRIBUTE2 would be a value = "001" a "*" for ATTRIBUTE3 would be a value = "41" a "*" for ATTRIBUTE4 would be a value = "0M" a "*" for ATTRIBUTE5 would be a value = "B7" a "*" for ATTRIBUTE6 would be a value = "9FA"
每个属性均有一组有效值,"*"代表任意有效值,上述为各属性列的部分有效值示例。
匹配示例
示例1
产品"a"的属性配置:
{ "attribute1": "GH", "attribute2": "001", "attribute3": "VT", "attribute4": "OM", "attribute5": "JU", "attribute6": "YU" }
对应的储位ID为41。
示例2
属性配置:
{ "attribute1": "GH", "attribute2": "001", "attribute3": "23", "attribute4": "JU", "attribute5": "KO", "attribute6": "YU" }
对应的储位ID应为37。
需求
需避免低性能问题,寻求使用Java、JavaScript或SQL实现该属性匹配逻辑的最优方案。
内容的提问来源于stack exchange,提问作者JustToKnow
相关产品推荐
相关产品推荐

