求教有关“模式匹配”的算法/数据库设计: func(x,y,z,...)

2018-10-14 18:28:20 +08:00
 taurenshaman
[场景]
数据库中的条目 Item 包括不定数量的参数 Param,
Param 有这些属性:
Key:参数名
DataType:限定的参数值类型
Optional:该参数不是必须的
Regex:用于更严格限定的正则表达式
(其它还有些限定条件,比如最小值,最大值,枚举等等,暂时不考虑)

问题:
给定若干 [参数值] ,比如( 1,2,abc )或者( abc,123 ),怎样找出符合参数规则的条目。
e.g. 2 个参数( abc,123 ),假设有条目 Item999 包含 4 个参数( x, y, z, m ),其中 x 是必须的,其它 3 个是可选的,这里假设 y 和 z 都是整数类型且都适用 123 这个值,m 是其它类型,则需要返回 2 个结果:
Item999(x=abc, y=123),
Item999(x=abc, z=123)


不知道有谁接触过这方面的数据库设计或算法吗?
谢谢!
2422 次点击
所在节点    算法
1 条回复
taurenshaman
2018-10-15 14:43:21 +08:00
自问自答:
把每个 item 的所有可能性都列出来,类似索引数据,最后只是遍历即可:
Item999, key1, key3
Item999, key2, key3
...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/497545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX