-1

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

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

PS 我正在使用 ROR 和 PostgreSql。

4

1 回答 1

1

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

  1. 一封电邮。很简单,但如果必须在那里。我会将两个 A/B 版本存储在同一个表中。
  2. 应该是用户。我假设您将实现某种功能,即发送 1x1 像素图像,然后记录加载图像的 IP/电子邮件地址。您想将其存储在表中。
  3. 这种情况经常发生 - 用户发送电子邮件,发现错误并再次发送。您需要考虑存储电子邮件及其活动的历史版本。“电子邮件 ID 123 周一发送一次,周二发送一次。” 不要合并这些统计数据,确保它们是分开的。
  4. 你会做很多比较。针对成功的活动运行查询可能会很昂贵。对表格中的统计信息进行一些预处理可能是个好主意。
  5. 您需要一个活动来跟踪电子邮件及其 A/B 行为。制作一个活动表来对电子邮件活动/结果进行分组。

在设计数据库时,我喜欢找到最核心的对象并围绕它进行设计。在这种情况下,我会提名竞选活动或电子邮件。让一个太阳成为你宇宙中其他一切都围绕着它旋转的太阳,这将帮助你设计其余的部分。

于 2013-03-18T19:10:32.447 回答