Database design 什么是';最佳实践&x27;使用Grails进行数据建模时使用公共一对多关联的方法

Database design 什么是';最佳实践&x27;使用Grails进行数据建模时使用公共一对多关联的方法,database-design,grails,Database Design,Grails,举个例子: 该应用程序包含用于不同类型联系人的域类,例如 经理、店员、飞行员、棒球教练等 它们都是单独的类,因此在数据库中都有各自独立的表 一个常见的要求是记录多个电子邮件地址。为了避免重复代码,我将在src/groovy中创建一个名为EmailAddress的@Validatable类,该类当然包含EmailAddress,以及该地址的可选标签 现在,为了允许所有这些不同的域类记录多个电子邮件地址,最好创建新的域类来扩展EmailAddress并链接回关系的所有者端 例如 &加 去经理班?或者

举个例子:

该应用程序包含用于不同类型联系人的域类,例如

经理、店员、飞行员、棒球教练等

它们都是单独的类,因此在数据库中都有各自独立的表

一个常见的要求是记录多个电子邮件地址。为了避免重复代码,我将在src/groovy中创建一个名为EmailAddress的@Validatable类,该类当然包含EmailAddress,以及该地址的可选标签

现在,为了允许所有这些不同的域类记录多个电子邮件地址,最好创建新的域类来扩展EmailAddress并链接回关系的所有者端

例如

&加

去经理班?或者,为了识别所属实体,最好使用一个包含大量鉴别器的EmailAddresses表


提前感谢您的评论/回复。

在不同的表/类上复制相同的结构很少是一个好主意(每个具体类的表将减少此处的代码重复)。与鉴别器的备用数据库关系是父表应该合并的信号

因此,提取像
Person
Contact
这样的公共超类并将
电子邮件连接到该类可能是有意义的

class ManagerEmailAddress extends EmailAddress {
  static belongsTo = [Manager]
}
 hasMany = [emails:ManagerEmailAddress]