所以我在我的网站上用PHP和MongoDB创建了一个程序,在其中我可以看到有关我的成员的有用数据,并通过它们进行过滤。
例如,查询可能如下所示:向我显示过去7天内所有在20到30之间的男性访问该网站的人,并至少登录该网站10次。
通过上面的查询,我会得到100个人,我想设置一个特定于过滤器的自动电子邮件(我有电子邮件功能)。
因此,在这种情况下,将发送100封电子邮件,但每次成员触发上述查询时(当用户登录并匹配上述查询时,例如该人可以将他的性别从男性改为女性,也许现在满足查询),将触发事件并发送电子邮件。
您将如何“存储”这些类型的查询,并在访问该网站时对其进行实际测试?
聚苯乙烯。我可能不知道查询,因为其他人可能正在使用我的网站,因此当用户登录时我无法运行“if”逻辑,因为我不知道其他人的查询条件。
答案 0 :(得分:1)
规则引擎最适合此任务。由于您使用的是PHP,我建议您查看Ruler中的Justin Hileman项目。这和规则引擎一般允许您定义规则(概念上类似于DB查询条件),这些规则在评估上下文(一个或多个值)并返回布尔结果时。大多数引擎都允许您以编程方式构建规则,这意味着您可以将其配置存储在数据库中(如果用户正在创建自己的条件,则非常理想)。
关于实施标尺的优秀博客文章可以在Jon Wage's blog找到,其中他描述了在电子商务商店OpenSky中如何使用标尺。他们大量使用它来进行分析和客户奖励(例如,如果用户引用的是朋友,然后在X天内购买产品,则原始用户会收到信用额度。)
虽然博客文章没有大量报道,但OpenSky确实有一个用于创建和管理规则的后端UI。诸如“来自Facebook的用户”之类的个别条件是在PHP中实现的,但是Web UI允许制作复杂的规则,并且该配置又存储在数据库中。