建模用户角色Hibernate

建模用户角色Hibernate,hibernate,database-design,Hibernate,Database Design,只是一个设计问题 我有一个实体,本质上是一个用户类型,是治疗师。治疗师能够以用户身份登录系统并执行所需功能。但是也有其他用户,例如Admin 我想知道最好的建模方法 是否应该扩展User类,并在子类中添加特定于用户的附加属性?或 这更像是一个角色场景吗 一位同事建议,任何类都不应该真正扩展用户,就好像它们采用了不同的角色,那么该子类将被稀释和冗余。这更像是一个角色 有什么想法吗?我觉得这更像是一个角色。如果一个治疗师同时也是一名管理人员呢?您将无法使用继承对其进行建模。是的,我也这么认为。但

只是一个设计问题

我有一个实体,本质上是一个用户类型,是
治疗师
。治疗师能够以用户身份登录系统并执行所需功能。但是也有其他用户,例如
Admin

我想知道最好的建模方法

  • 是否应该扩展
    User
    类,并在子类中添加特定于用户的附加属性?或
  • 这更像是一个角色场景吗
一位同事建议,任何类都不应该真正扩展
用户
,就好像它们采用了不同的角色,那么该子类将被稀释和冗余。这更像是一个角色


有什么想法吗?

我觉得这更像是一个角色。如果一个治疗师同时也是一名管理人员呢?您将无法使用继承对其进行建模。

是的,我也这么认为。但是治疗师将拥有与用户大致相同的属性,例如用户名、密码、地址、电子邮件等,除了一个称为治疗师总结的额外特定属性,该属性总结了他们是谁以及他们做了什么。因此,在这种情况下,治疗师不应该重复使用用户对象吗?对不起,我愚蠢的提问。哦,而且,所有关联都是针对治疗师的,例如治疗提供、可治疗症状等。因此,这意味着所有这些类都将与听起来不正确的用户对象关联,因为它们是针对治疗师的??您可以拥有一个治疗师实体,与用户有一对一的关联。如果存在此关联,则表示用户具有治疗师角色。你所有的治疗师XXX实体都可以与治疗师实体建立联系。我明白了,这是有道理的。但无论哪种方式,用户类都需要引用治疗师类?我看不出有什么方法可以让这有点通用,因此治疗师在用户类中不可见,尽管使用一对一可以防止所有治疗师特定的实体直接挂在用户类上。感谢您,我宁愿在治疗师表中添加一个不可为空的唯一外键,并引用用户ID。是否将关联设置为单向还是双向取决于您。治疗师必须了解其用户(例如,为了能够获得治疗师的姓名),但用户不一定知道其潜在的治疗师。然后,您必须使用查询来了解用户是否是治疗师。