0

所以我用 PHP 和 MongoDB 为我的网站创建了一个程序,我可以在其中查看有关我的成员的有用数据,并通过它们进行过滤。

例如,查询可能如下所示:显示所有男性,年龄在 20 到 30 岁之间,在过去 7 天内访问过该站点,并且至少登录该站点 10 次。

通过上面的查询,我会得到例如 100 个人,我想设置一个特定于过滤器的自动电子邮件(我有电子邮件功能)。

因此,在这种情况下,将发送 100 封电子邮件,但每次成员触发上述查询(当用户登录并匹配上述查询时,例如,该人可以将他的性别从男性更改为女性,也许现在遇到查询),将触发事件并发送电子邮件。

您将如何“存储”此类查询,并在成员访问该站点时对其进行实际测试?

附言。我可能不知道这些查询,因为其他人可能正在使用我的网站,所以当用户登录时我无法运行“如果”逻辑,因为我不知道其他人的查询条件。

4

1 回答 1

1

规则引擎最适合此任务。由于您使用的是 PHP,我建议您查看Justin Hileman的Ruler项目。这和一般的规则引擎允许您定义规则(在概念上类似于 DB 查询条件),这些规则在评估上下文(一个或多个值)并返回布尔结果。大多数引擎将允许您以编程方式构建规则,这意味着您可以将它们的配置存储在数据库中(如果用户正在创建自己的标准,这是理想的选择)。

可以在Jon Wage 的博客上找到一篇关于实施 Ruler 的优秀博客文章,其中他描述了 Ruler 在电子商务商店OpenSky中的使用情况。他们大量使用它来进行分析和客户奖励(例如,如果用户推荐朋友,然后他在 X 天内购买了产品,则原始用户会收到积分)。

虽然没有详细介绍博客文章,但 OpenSky 确实有一个用于创建和管理规则的后端 UI。诸如“是来自 Facebook 的用户”之类的个别条件是用 PHP 实现的,但是 Web UI 允许制定复杂的规则,而该配置又存储在数据库中。

于 2013-08-19T20:17:03.720 回答