0

假设我有一个表 EmailQueue,用于构建要发送给用户的电子邮件,使用几个不相关的进程。电子邮件可以包含越来越多的不同“内容项”,但现在我们只说我们有新闻、事件和优惠。这些“内容项”中的每一个都已填充到各自的表格中,并将有选择地添加到用户的电子邮件中。

现在我要做出设计决定。

1
我可以保持标准化模式,并为电子邮件可以包含的每个“内容项”创建一个映射表。

|EmailId|NewsId| , |EmailId|OfferId| , ...

我看到这种设计的主要问题是每次将新的“内容类型”集成到电子邮件系统时都会产生大量开销。在数据库和对象映射中。

或者

2
我可以创建 1 个具有类型引用的映射表。

   |EmailId|ContentID|ContentType|

当然,这里最大的问题是没有参照完整性。我觉得对象映射会更容易处理,并且添加一个新对象只需要添加一个新ContentType行(当然还有所需的对象映射代码)。

这些解决方案中的一种是否比另一种更好?或者有没有比我不知道的这两个更好的解决方案?

我倾向于使用方法2,主要是因为这个项目需要快速开发,但担心我可能会后悔这个决定。

注意:我们使用亚音速作为我们的数据访问 ORM,它在通过键控关系处理对象图方面做得不错(并不完美)。不过,我仍然可能需要将活动记录“内容”对象映射到域对象。

4

0 回答 0