Grails:域类继承的最佳实践

时间:2013-07-05 16:30:13

标签: hibernate grails orm

我的应用程序我有用户 - 许多类型的用户。我有一个像

的层次结构
User
Worker extends User
Director extends Worker
Manager extends User

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

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

但是现在我意识到,也许我错过了一些东西而且我的整个想法都是错的 - 所以我想问一下 - 这个问题唯一的最佳想法是什么? 我确信使用像一对一的映射是不可接受的。

0 个答案:

没有答案