类/实体设计。用户类及其子类

时间:2014-05-18 10:01:14

标签: java design-patterns database-design

我想知道你对如何设计这样的看法是什么。

我有几种用户可以说它们被称为 A B C 。 它们都可以是用户类的子类。 (他们都将拥有不同类型的权限,允许他们读/写/输入某些应用程序页面。)

我应该如何设计那些calasses( A B C ,有/没有超类用户)和数据库中的表,以便它们在我的应用程序中运行良好。

我正在使用 JSF JEE 中撰写。我正在阅读有关设计模式的内容,但我不知道如何使用给定的 DB 表来实现它们。

(例如,我将如何映射抽象类User与它在DB中的子类之间的关系)

我正在使用普通的JPA。

1 个答案:

答案 0 :(得分:1)

首先,您确定您拥有正确的整体课程设计吗?在许多情况下,用户今天可能是“用户”,但稍后可能被提升为“管理员”。这表示用户正在扮演角色,这是时间限制的。如果是这种情况,继承不是正确的建模技术。 Peter Coad是这个领域的大师 - 试着用他的名字搜索谷歌。

将对象图映射到关系数据库表是一个很好的领域。有三种主要方法 - 每个类层次结构一个表;每个具体类一个表,每个类一个表(抽象和具体)。没有一种方法是完美的 - 它们都有权衡。在同一数据库中使用多个映射策略是很常见的。谷歌再次成为你的朋友。