我有一个使用postgresql的symfony2网络应用程序。我的(简化)应用程序显示具有3个功能的产品 - 价格,可用日期和重量。用户可以搜索这3个参数的产品,并将查询保存到其配置文件中。当他们点击个人资料中的链接时,该查询就会轻松运行。
我想添加新功能,以便在保存的查询结果发生变化时通过电子邮件发送给用户。如果列出了新产品并符合其参数,或者如果与其查询匹配的现有产品发生了变化,则可能会发生这种情况 - 例如价格变更或可用日期更改。
我想我需要在Symfony2中创建一个新实体,它将包含所有产品属性以及查询ID,因为每个查询可能有很多产品。接下来,我需要创建一个每次添加或更改产品时运行的事件,这样我就可以向用户发送电子邮件并指定更改的内容。
也许为了简化这一点,我可以向产品实体添加updatedAt字段,而不是在新实体中包含所有产品属性,我只会保存产品ID,并且只会告诉用户产品更改。
有没有比创建存储每个已保存查询结果的新实体更好的方法?我可以添加代码来显示我在做什么,但感觉我在一个主要的分支,可以使用许多不同的可能性,甚至可能不涉及创建新的实体。
答案 0 :(得分:0)
我通过添加CBroe建议的更多功能解决了这个问题。我添加了一个活动标志,现在我正在进行重要更改时保留产品实体的历史记录。这样,查询活动产品并查询及时回购的产品很简单。我现在开始添加一个计划任务以按设定的时间间隔运行,而不是立即发送通知以达到性能目的,但这是一个单独的问题。 感谢您使用活动标记和建议来保存历史记录的想法,因为它将在未来使用。