1

我的应用程序我有用户 - 许多类型的用户。我有他们的等级,比如

User
Worker extends User
Director extends Worker
Manager extends User

他们有不同的功能、数据等,但他们都是一等公民。用户可以登录 - 密码、用户名等字段。

现在我尝试在数据库中对这种结构进行建模——或者更确切地说,找到解决这个问题的最佳方法。当我使用 PostgreSQL 时——表继承对我来说是最清晰的解决方案——然而,Hibernate 根本不支持这一点。Grails 中的选项是 - 每个层次结构的表 - 由于许多原因(不可为空的列是其中之一)或每个类的表,我不喜欢它。这可能有效,但是我发现生成的表缺少一个非常重要的东西——外键。假设我有用户表,那很好,它使用自己的序列。他们有一个工作表,其中包含来自工作类的字段并通过其 ID 引用用户 - 从技术上讲,我有两条记录在应用程序中映射时建立一个工作类 - 很好,除非我看到 worker id 列不是用户 id 的外键 - 这在普通 SQL 中添加是微不足道的并且效果很好。我找不到如何在 Grails 中以编程方式执行此操作的解决方案。

但现在我意识到,也许我遗漏了一些东西,我的整个想法都是错误的——所以我想问一下——解决这个问题的最佳想法是什么?我确信使用一对一的映射是不可接受的。

4

0 回答 0