[英]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.