2016-09-28 10 views
0

Ich arbeite an einem System und versuche, ddd mit node.js zu verwenden. Hier ist das ein Beispiel für das System, von einem High-Level:DDD: Logik, die mehrere Modelle umfasst, wohin soll es gehen?

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.  
}] 

Die Business-Logik besagt, dass nur der Patient oder ein Arzt, der ein Mitglied einer der Abteilungen bei den Patienten ist, kann Abteilung Liste überprüfen seine medizinischen Informationen. Ich dachte ursprünglich, dass es in einem separaten Domain-Service sein sollte, da es scheint, Entitäten zu umfassen, aber der Nachteil ist, dass andere Dienste einen Berechtigungsservice aufrufen müssten und ich dachte, dass Services keine anderen Services aufrufen sollten. Wenn ich in die Labor- und Medikamenteneinheiten eintrage, dann bin ich Duplikationscode und verletze mich trocken. Wenn ich zum Dienstbereich der Abteilung hinzufüge, mache ich einen Dienst, der einen anderen Dienst anruft. Aus einer DDD-Perspektive, wo gehört eine solche Logik?

+0

Anwendungsdienste sollten keine anderen Anwendungsdienste aufrufen, da es sich um Use-Case-Einstiegspunkte handelt. Es gibt jedoch keine Begrenzung für die Anzahl der verfügbaren Domänen-Services. – plalx

Antwort

0

Woher haben Sie die Idee, dass Dienste keine anderen Dienste aufrufen sollten? Sicherheit ist normalerweise ein separater Dienst oder was auch immer.

Verwandte Themen