设计和开发A / b拆分电子邮件活动工具

时间:2013-03-18 10:02:18

标签: ruby-on-rails design-patterns database-design

我正在开发一种与市场上可用的A / B拆分电子邮件广告系列工具非常相似的工具。我需要一些关于设计方面的指示/建议。主要方面是数据库设计。我不期待这里的解决方案,只是一种方法。

对数据库设计,设计模式,最佳方法,第三方插件的任何帮助都将不胜感激。

P.S。我正在使用ROR和PostgreSql。

1 个答案:

答案 0 :(得分:1)

我想要表示为数据库结构的一些概念:

  1. 电子邮件。很简单,但如果必须在那里。我会将两个A / B版本存储在同一个表中。
  2. 可能是用户。我假设您将实现某种功能,发送1x1像素图像,然后记录加载图像的IP /电子邮件地址。您希望将其存储在表格中。
  3. 它发生了很多 - 用户发送电子邮件,实现错误并再次发送。您需要考虑存储电子邮件的历史版本及其活动。 “电子邮件ID 123周一发送一次,周二再发送一次。”不要将这些统计数据结合起来,确保它们是分开的。
  4. 你将进行大量的比较。对于成功的广告系列,查询可能会很昂贵。在表格中对统计数据进行一些预处理可能是个好主意。
  5. 您需要一个广告系列来跟踪电子邮件及其A / B行为。制作广告系列表以对电子邮件活动/结果进行分组。
  6. 在设计数据库时,我喜欢找到最核心的对象并围绕它设计。在这种情况下,我会提名广告系列或电子邮件。让宇宙中的太阳成为其他一切围绕的太阳,这将有助于你设计其余部分。