繁体   English   中英

php&mysql订阅搜索/匹配查询

[英]php & mysql subscribe to search/matching queries

我有一个房地产网站,其中包含多个类别。 我希望用户能够通过电子邮件订阅某些报价列表,他们既可以是某个类别的报价,也可以是搜索列表中的报价。

我如何存储它们是mysql中最好的订阅方式...以及如何进行通知。

我想出的最好的办法是将一个带有用户ID的mysql字符串存储在mysql表中,然后运行一个cron来获取所有这些信息并对其进行迭代...运行cron,如果有新广告,它将发送电子邮件。

但是我不认为这是最好的主意,因为这还意味着如果数据库设计发生变化(例如,字段名),那么所有这些查询都会变糟。

非常感谢

通常,您希望将表设计为尽可能灵活,以应对意外更改。 如果这些字段更改,则您的查询仍然需要更改。

没有细节,这些将是我的指导原则:

  1. 具有索引和电子邮件的用户表

  2. 有订阅类型表

  3. 有一个用户ID +订阅查找表

  4. 有一个待处理的消息表

当出现新的更新时,请收集所有电子邮件,并在未决消息表中创建一条消息日志条目。

构建您的Cron,使其每隔几分钟即可抓取20条未发送的消息,并在发送后将其删除。

我之所以说要通过CRON反复发送邮件,是因为随着订户的增长,您不想一次发送数百封电子邮件并占用服务器资源来存放邮件队列。 您可以仅根据需要添加消息,并且队列将始终将其发送出去。

我们已经非常有效地将这种方法用于我们所有的大规模应用程序,错误记录和提醒通知系统。 它可能不是最好的解决方案,但事实证明它非常易于管理和灵活。

如果您更改数据库设计,则肯定必须修复某些问题,这就是这个世界的工作方式。

如果由于某种原因您很难更改cron任务,则可以创建一个存储过程,该存储过程始终返回适合该任务的结果集,然后更改该存储过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM