电子邮件日志记录数据库表结构

时间:2018-08-07 21:38:06

标签: sql sql-server database

嘿。我想听听是否有人已经建立了类似的东西,以及您是如何处理和构建这个东西的。

因此,我想在数据库中建立一个从我们的系统发送出去的所有电子邮件的日志。电子邮件连接到不同的对象(产品/清单,预订等)。因此需要日志,因为如果我们要发送一系列电子邮件,则需要知道最后发送的电子邮件以及何时发送。

问题是如何构造日志记录表,以便以后可以查询针对特定预订发送的所有/最后/特定电子邮件。 最好为每个对象保留一个日志表,或者为所有对象保留一个通用表(也许带有连接表)。

我正在网上寻找一些方法来构造用于记录的表,但是希望听到有关此特定问题的一些意见。

感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

我们有一个用于类似目的的表格。它包含类似

的内容
  • ID
  • LogDate
  • 用户ID
  • TypeID(我们将电子邮件,短信和其他操作存储在一个表中)

链接到操作源。我们有大量的资源可以执行此处记录的操作-客户文档(各种类型),供应商文档(各种类型),报告,工具等。大多数情况下,我们不需要重新加入SQL中的文档,只需ID和源类型,因此我们不会将它们存储为每种类型的单独列,而仅将类型和ID存储。通过保持此状态,我们可以在适用的情况下从这些日志的网格中打开源文档。

  • SourceTypeID
  • SourceID

链接到经常搜索/选择的父表。我们之所以直接保持链接是因为我们经常出于各种原因在SQL中加入这些链接,并且如果父母被合并,也有助于保持引用完整性。 (上面SourceID中引用的文档永远不会合并)。来自客户或购买文档的任何日志都将包含一个或多个,而来自内部工具的日志则可能没有。

  • 帐户ID
  • SupplierID
  • CustomerID(客户与帐户不同-考虑送货地址而不是由谁付款)

消息数据详细信息。我们不需要为我们的目的存储电子邮件正文或附件(有些人需要这样做)。我们确实存储了电子邮件主题行(或整个SMS消息)。

  • 电子邮件地址
  • EmailBCC
  • SMSAddress(电话号码)
  • 主题(或SMS消息)

此表在通常过滤的列上建立索引-帐户ID,客户ID,供应商ID,用户ID,源ID。从任何文档中,我们都可以通过sourceId(带有sourceTypeID过滤器)快速找到有关该文档的所有电子邮件/短信。对于任何帐户/供应商等,我们都可以从该帐户的任何文档中快速找到所有消息。

相关问题