我目前正在尝试围绕领域驱动设计、实体、服务、存储库构建我的应用程序...
所有基本的增删改查操作都很简单,基本上 1 个实体 => 1 个表 => 1 个存储库 => 1 个服务
但我无法找出处理两个实体之间的联接表的最干净的方法。
可以在联接内部按表进行 1 次查询,并且它会是“干净的”(可以这么说),但效率不高,因为简单的联接会导致一次查询。
在这种模式下,表格在哪里连接?
我一直在考虑现在构建能够封装答案的实体,但这将有效地为 1 个查询创建 1 个实体 + 存储库...
我还认为将多个实体合并到一个接口中可能会部分解决这个问题,但这会导致我的实体出现许多空参数(当您执行联接时,很少需要所有选项卡中的所有字段)
解决这个问题的正确方法/模式是什么,适合 DDD 或至少是干净的?
-- 编辑示例:
type User struct {
ID int `db:"id"`
ProjectID int `db:"project_id"`
RoleID int `db:"role_id"`
Email string `db:"email"`
FirstName string `db:"first_name"`
LastName string `db:"last_name"`
Password string `db:"password"`
}
type UserRepository interface {
FindById(int) (*User, error)
FindByEmail(string) (*User, error)
Create(user *User) error
Update(user *User) error
Delete(int) errorr
}
type Project struct { …Run Code Online (Sandbox Code Playgroud)