我有一个Workspace
和Document
实体,认为工作区可以包含零个、一个或多个文档。我的第一个建模方法是:
case class Workspace(name: String, documents: Seq[Document])
但这不会很好地扩展,因为我的工作区可能包含许多文档。幸运的是,我的业务需求允许我分别处理工作区和文档(从某种意义上说,当我有一个工作区时,没有理由或不变量迫使我考虑其中包含的所有文档)。
问题:我想知道:我将如何在SormWorkspace
中建模,以便在两者之间建立链接,但不必加载工作区的所有文档?我想有一个存储库,它可以让我访问工作区的文档,并支持分页。)Document
case class Workspace(name: String)
case class Document(name: String, /* ... */)
trait WorkspaceRepository {
def children(ws: Workspace, offset: Long, limit: Long)
}