我正在撰写发送电子邮件通知的流程。目前,我在一个表格中写下电子邮件通知,其中包含以下列:
发件人和收件人可以是User或Group类型。显然,目前我不能为发件人或收件人提供FK。
1)第一个选项是在映射中使用Any,并为该类型添加两个附加列。
2)第二个选项是为每个组合创建4个类,并使用鉴别器映射它们:
class1 =>类型组的发件人,类型组的收件人
class2 =>类型为Group的发件人,类型为User的收件人
class3 =>用户类型的发件人,类型为组的收件人
class4 =>用户类型的发件人,用户类型的收件人
3)其他选择?
您如何看待这个?
最好的问候
答案 0 :(得分:1)
如果是我并且我控制了数据库,我会将两列 sender_id 和 recipient_id 更改为发件人和收件人即可。这些字符串字段包含您打算使用的原始电子邮件地址。
这只是另一种方法。就数据库设计而言,不一定是最好的,但从实现和映射的角度来看,这一点很简单。
答案 1 :(得分:0)
您还可以创建一个EmailEntityBase
(或者您可能找到的更好的词组)类,Group
和User
将继承该类。
然后,您的Notification
实体会引用EmailEntityBase
发件人和收件人属性。