簡體   English   中英

查詢的有效方式是返回新的或更新的結果

[英]Efficient way to nofity that query returns new or updated results

我有一個使用postgresql的symfony2網絡應用程序。 我的(簡化的)應用程序顯示的產品具有3個功能-價格,有效期至和重量。 用戶可以在這三個參數上搜索產品,並將查詢保存到他們的配置文件中。 當他們單擊個人資料中的鏈接時,查詢很容易運行。

我想添加新功能,以在用戶保存的查詢結果發生更改時通過電子郵件發送給用戶。 如果列出了新產品並符合其參數,或者與他們的查詢匹配的現有產品發生了更改-例如說價格更改或更改之前的可用日期,就會發生這種情況。

我認為我需要在Symfony2中創建一個新實體,該實體將包含所有產品屬性以及查詢ID,因為每個查詢可以有很多產品。 接下來,我將需要創建一個事件,該事件在每次添加或更改產品時運行,這樣我就可以向用戶發送電子郵件並指定更改的內容。

也許為了簡化此操作,我可以向產品實體添加一個updatedAt字段,而不是將所有產品屬性都包括在新實體中,而是僅保存產品ID,並僅告訴用戶產品已更改。

有沒有比創建一個新實體來存儲每個保存的查詢結果的更好的方法呢? 我可以添加代碼來顯示自己在做什么,但是我感覺自己很忙,可以使用許多不同的可能性,甚至可能不涉及創建新實體。

我通過添加CBroe建議的更多功能來解決此問題。 我添加了一個活動標記,並在進行重要更改時保留了產品實體的歷史記錄。 這樣,查詢活動產品並仍然查詢及時回購的產品很簡單。 我現在開始添加按計划的間隔運行的計划任務,而不是出於性能目的立即發送通知,但這是一個單獨的問題。 感謝您使用主動標記的想法,並建議保留歷史記錄,因為這將在以后使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM