我应该在我的数据库中存储电子邮件吗?

时间:2014-01-02 17:06:08

标签: ruby-on-rails ruby-on-rails-4 imap

理论上,我希望将电子邮件集成到我正在构建的CRM中。我希望每位联系人都使用电子邮件地址,以便在查看与已连接的IMAP帐户的联系人时收到已发送和接收的电子邮件。

是否会将这些电子邮件存储在数据库中,或者是否可以更快/更高效地即时获取这些电子邮件? (当通过GET请求访问联系页面时)。

1 个答案:

答案 0 :(得分:1)

  

是否会将这些电子邮件存储在数据库中,或者是否可以更快/更高效地即时获取这些电子邮件?

您是否测量过性能?不要过早地优化,实际识别瓶颈。设置一些测试(大规模,可重复...不只是测试一次电子邮件)以从CRM系统检索电子邮件,而不是从数据库中检索它们。看看是否存在显着差异。在决策过程中包含这些信息。

此外,在做出此决定时还需要考虑其他事项。即:

  1. 这些电子邮件会在交易范围内被修改吗?数据库擅长参与代码,第三方服务和API中的工作单元的事务范围,而不是那么多。如果需要将它们作为此类范围的一部分,您可能希望将它们放入数据库中。 (虽然给出了描述,但这不太可能。)
  2. 在多个系统之间复制数据(多个“事实来源”)并使其保持同步 hard 。它在系统中引入了许多意想不到的复杂性。您可能会看到性能提升,但值得吗?也许一些应用程序级缓存会产生同样多的收益,而不会重复数据并在混合中引入另一个依赖项?