【发布时间】:2013-05-01 03:06:16
【问题描述】:
鉴于这些功能要求:
用户管理
- 管理员
- 图书管理员
- 借款人
*用户可以选择通过 OpenID 登录。
物业管理
- 书籍
- 备忘录
- 圆形
- 许可证
通常,我会在 Java 中将这些实现为:
interface User {}
class Librarian implements User {}
class Administrator implements User {}
class Borrower implements User {}
class OpenID {} //all Users HAS AN OpenID attribute (NULL if non-openId login)
interface Property{}
class Book implements Property{}
class Memorandum implements Property{}
class Circular implements Property{}
class License implements Property{}
但我们的项目将使用 Groovy 和 Grails,我还没有使用过。我的问题是, domain 类应该如何根据上述要求设计?我不能使用接口,而且似乎继承不是一个好习惯。我的想法是使用composition,尽管我对生成的数据库表感到很困扰。在这种情况下,最佳做法是什么?
【问题讨论】:
-
有时从数据库模式开始并向后工作更容易。试着这样想。
标签: grails orm domain-driven-design grails-orm