我正在写一个发送电子邮件通知的过程。目前,我将电子邮件通知写入具有下列列的表中:
发件人和收件人可以是用户或组类型的。显然,目前我不能为发件人或收件人提供FKs。
1)第一个选项是在映射中使用Any,并为该类型添加两个额外的列。
2)第二个选项是为每个组合创建4个类,并使用判别器映射它们:
类型组的class1 =>发件人,类型组的收件人
类型组的class2 =>发送方,类型用户的收件人
类型用户的class3 =>发送方,类型组的收件人
类型用户的class4 =>发送方,类型用户的收件人
3)其他选择?
你觉得这个怎么样?
诚挚的问候
发布于 2011-07-05 20:10:32
您还可以创建一个EmailEntityBase类(或任何您可能找到的更好的措辞)类,Group和User都将继承该类。
然后,Notification实体将引用EmailEntityBase发件人和收件人属性。
发布于 2011-07-05 17:42:55
如果是我,我可以控制数据库,我会将sender_id和recipient_id两列改为发送方和收件人。这些将是字符串字段,包含您打算使用的原始电子邮件地址。
这只是另一种方法。就数据库设计而言,不一定是最好的,但从实现和映射的角度来看却很简单。
https://stackoverflow.com/questions/6584041
复制相似问题