Wiederverwendung des aggregierten Stammschlüssels in begrenzten Kontexten?
Wie die Frage besagt, ist das eine schlechte Praxis? Ich habe ein Benutzeraggregatstamm im begrenzten Kontext der Identität zur Authentifizierung des Benutzers. In diesem begrenzten Kontext habe ich Felder für den Benutzer, die sich auf die Identifizierung des Benutzers beziehen, z. B. E-Mail, Salted Pw und so weiter.
Ich habe auch eine generische Subdomain für die Bearbeitung von Benachrichtigungen. In diesem Zusammenhang ist ein Benutzer ein Notificant. In diesem Zusammenhang verfügt der Notificant über Felder für z. B. die Anzahl der ungelesenen Benachrichtigungen, lastRead usw.
Ist es in diesem Fall sinnvoll, die Benutzer-ID wiederzuverwenden, da ich weiß, dass zwischen einem Benutzer und Notificant eine 1: 1-Korrespondenz besteht? Oder sollte ich ein Feld im Notificant-Stammverzeichnis haben, das auf den Benutzer verweist? Es fühlt sich überflüssig an, weil ich dann nachschlagen muss, um zwischen ihnen abzubilden, wenn ich weiß, dass ihre Beziehung symmetrisch ist.
Antworten
Nein, verwenden Sie aggregierte Stammschlüssel nicht erneut, um verschiedene Objekte in verschiedenen Kontexten zu identifizieren!
Warum?
- Weil a
Notificant
nicht a istUser
. Vielleicht werden heute meistens Benutzer benachrichtigt. Aber morgen müssen Sie möglicherweise Dritte benachrichtigen, die das System nicht verwenden, oder sogar automatische Überwachungssysteme. - Weil es sich um einen anderen begrenzten Kontext handelt und sich begrenzte Kontexte unabhängig voneinander entwickeln können. Vielleicht heute
User
undNotificant
teilen die gleiche Granularität und können direkt eins zu eins verwandt sein. Aber wer weiß von morgen? Sie müssen also sorgfältig überlegen, wie sie zusammenhängen sollen.