我有 2 个实体,比如说Client和Company(都是User的子类)。
每个都有一个事件列表:ClientEvents和CompanyEvents
我们首先拆分这些表(而不是使用事件表)的原因是每种事件不会混合(一次只能对一种事件进行操作)。这也将导致拥有 2 个较小的表而不是一个大表。
- 这是一个好方法吗?(大表数据量~1M)
也许不需要将这些表一分为二而只使用继承? - 将其建模为实体的最佳方法是什么?
两种类型实体的属性和操作是相同的,因此我可以将其建模为:
@MappedSuperclass
public abstract class **Event** {...}
@Entity @Table(name="client_event")
public class **ClientEvent** {...}
@Entity @Table(name="company_event")
public class **CompanyEvent** {...}
现在有没有一种方法可以查询每种类型的特定事件而无需在 DAO 中复制方法(使用 hibernate 或 JPA,也许泛型会在这里使用)?
3. 在这种情况下(两个独立的存在,但属性和操作相同)是否有“经验法则”来建模数据库表和实体?