簡體   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