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

标签 java design-patterns database-design

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

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

我应该如何设计数据库中的这些 calasses(ABC 有/没有父类(super class) User)和表,以便它们在我的应用程序中正常工作。

我正在使用 JEEJSF 进行编写。我正在阅读有关设计模式的内容,但我不知道如何使用给定的数据库表来实现它们。

(例如,我将如何映射抽象类 User 及其在数据库中的子类之间的关系)

我使用的是普通 JPA。

最佳答案

首先,你确定你的整体类设计是正确的吗?在许多情况下,用户今天可能是“用户”,但以后可能会晋升为“管理员”。这表明用户正在扮演一个有时间限制的角色。如果是这种情况,继承就不是正确的建模技术。 Peter Coad 是该领域的大师 - 尝试在 Google 上搜索他的名字。

将对象图映射到关系数据库表是一个常见的领域。主要有三种方法:每个类层次结构一张表;每个具体类一张表,每个类一张表(抽象和具体)。没有一种方法是完美的——它们都需要权衡。在同一个数据库中使用多种映射策略是很常见的。再说一遍,Google 是您的 friend 。

关于java - 类/实体设计。用户类及其子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720740/

相关文章:

java - Spring ,JPA, hibernate ,Tomcat : Unable to find persistence unit when loading Spring application context

java - 具有通用返回类型的命令模式

java - 在 Java 中检查对象是否为 null

database-design - 一对一和一对多在一起如何设计?

java - JAX-WS 端点不工作

java - 在 Java 中将代码点转换为 UTF-8 字节数组

mysql - 从 MySQL 切换到 Cassandra (NoSQL) 的 future 潜力

mysql - 数据库速度取决于列或行(记录)?

java - 我在使用 sleep 时遇到问题?

java - Java中的单例和继承