Wiederverwendung des aggregierten Stammschlüssels in begrenzten Kontexten?

Jan 12 2021

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

3 Christophe Jan 12 2021 at 05:09

Nein, verwenden Sie aggregierte Stammschlüssel nicht erneut, um verschiedene Objekte in verschiedenen Kontexten zu identifizieren!

Warum?

  • Weil a Notificantnicht a ist User. 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 Userund Notificantteilen 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.