Ich arbeite an einer Anwendung, wo Benutzer einander folgen können, ähnlich wie Twitter.DDD: Verbindungsobjekte sind Entity Object oder Value Object?
Nach dem Lesen von DDD, verstehe ich, dass meine Benutzer Entity Objects sind - ich beziehe mich auf sie mit ihrer eindeutigen ID.
Wenn ein Benutzer einem anderen folgt (d. H. Eine Verbindung herstellt), wird die Beziehung in einer Viele-zu-Viele-Tabelle gespeichert. Seine Felder umfassen FollowerID
, TargetID
und Status
. Es kann nur zwei Datensätze für jede Follower/Target-Kombination geben (eine aktive, die andere inaktiv), so dass ich Objekte basierend auf ihren Attributen sicher identifizieren kann.
Also, ich denke, meine Connection-Objekte sind Value-Objekte, keine Entity-Objekte, aber ich bin mir nicht sicher. Kannst du mir bei dieser Entscheidung helfen?
„Ohne die Daten zu enthalten, von denen Benutzer eine Verbindung herstellen, hat eine Verbindung keine Identität“ - Die Verbindung ist für eine Kombination von FollowerID und TargetID einzigartig. Wenn wir also einen TaregtID und FollowerID haben, die ich glaube userids sind, können wir eine Verbindung identifizieren. Also, wie ist es kein Entitätsobjekt? –
@HariSubramaniam, eine andere Weise zu setzen ist als [diese Seite] (http://lostechies.com/joeocampo/2007/04/23/a-discussion-on-domain-driven-design-value-objects/) sagt "Ein Wertobjekt kann ohne eine Entität nicht alleine leben." Es ist sicherlich nicht immer leicht zu bestimmen, was was ist, aber nach über das Denken und Forschen es, ich stützte sich schwer auf sie ein Wertobjekt zu sein. – Matt