Если дочерняя сущность имеет только один родительский тип, тогда нет необходимости в соединительной таблице.
Я сделал это с JPA (с гибернацией).
Преимущества:
На один столик меньше.
Возможно, лучшая производительность.
Нет "для чего этот стол?" Тип вопросов.
Неудобство:
С точки зрения OO введена дополнительная зависимость между потомком и родителем. На практике это, вероятно, не такая уж большая проблема, поскольку у ребенка личные отношения.
e.g.
parent:
@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL)
@MapKey(name = "name")
private Map children;
child:
@ManyToOne(optional = false)
private Parent parent;