[英]php & mysql subscribe to search/matching queries
我有一个房地产网站,其中包含多个类别。 我希望用户能够通过电子邮件订阅某些报价列表,他们既可以是某个类别的报价,也可以是搜索列表中的报价。
我如何存储它们是mysql中最好的订阅方式...以及如何进行通知。
我想出的最好的办法是将一个带有用户ID的mysql字符串存储在mysql表中,然后运行一个cron来获取所有这些信息并对其进行迭代...运行cron,如果有新广告,它将发送电子邮件。
但是我不认为这是最好的主意,因为这还意味着如果数据库设计发生变化(例如,字段名),那么所有这些查询都会变糟。
非常感谢
通常,您希望将表设计为尽可能灵活,以应对意外更改。 如果这些字段更改,则您的查询仍然需要更改。
没有细节,这些将是我的指导原则:
具有索引和电子邮件的用户表
有订阅类型表
有一个用户ID +订阅查找表
有一个待处理的消息表
当出现新的更新时,请收集所有电子邮件,并在未决消息表中创建一条消息日志条目。
构建您的Cron,使其每隔几分钟即可抓取20条未发送的消息,并在发送后将其删除。
我之所以说要通过CRON反复发送邮件,是因为随着订户的增长,您不想一次发送数百封电子邮件并占用服务器资源来存放邮件队列。 您可以仅根据需要添加消息,并且队列将始终将其发送出去。
我们已经非常有效地将这种方法用于我们所有的大规模应用程序,错误记录和提醒通知系统。 它可能不是最好的解决方案,但事实证明它非常易于管理和灵活。
如果您更改数据库设计,则肯定必须修复某些问题,这就是这个世界的工作方式。
如果由于某种原因您很难更改cron
任务,则可以创建一个存储过程,该存储过程始终返回适合该任务的结果集,然后更改该存储过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.