我正在研究一个系统,并尝试将ddd与node.js一起使用。以下是系统的一个示例,来自高级别:
database tables(mongoldb):
user
username: String
firstName: String
middleName: String
lastName: String
department
title: String
members: [{
user: {type: this.mongoose.Schema.ObjectId, ref: 'user’},
permissions: String
}]
patient
user: {type: this.mongoose.Schema.ObjectId, ref: 'user’},
department: [{type: this.mongoose.Schema.ObjectId, ref: ‘department’}]
lab: [{
patient: {type: this.mongoose.Schema.ObjectId, ref: ‘patient’}
doctor: {type: this.mongoose.Schema.ObjectId, ref: 'user’},
type: String,
results: {there is a lot going on here, }
}]
medication: [{
patient: {type: this.mongoose.Schema.ObjectId, ref: ‘patient’}
doctor: {type: this.mongoose.Schema.ObjectId, ref: 'user’},
name: String,
dosage: Number,
etc.
}]
业务逻辑表明,只有作为患者,部门列表中某个部门成员的患者或医生才能查看他的医疗信息。我最初认为它应该在一个单独的域服务中,因为它似乎跨越实体,但缺点是需要其他服务来调用权限服务,我认为服务不应该调用其他服务。如果我放入实验室和药物实体,那么我是重复代码并且违反干燥。如果我添加到部门域服务,那么我正在进行服务调用另一个服务。从ddd的角度来看,这样的逻辑属于哪里?
答案 0 :(得分:0)
你在哪里获得的想法服务不应该调用其他服务。安全通常是一项单独的服务或其他。