Czy używasz ponownie zagregowanego klucza głównego w kontekstach ograniczonych?

Jan 12 2021

Jak stwierdza pytanie, czy jest to zła praktyka? Mam zagregowany root użytkownika w ograniczonym kontekście tożsamości do uwierzytelniania użytkownika. W tych ograniczonych kontekstach mam dla Użytkownika pola związane z identyfikacją Użytkownika, np. E-mail, solone pw i tak dalej.

Mam też ogólną subdomenę do obsługi powiadomień. W tym kontekście Użytkownik jest Zgłaszającym. W tym kontekście Zgłaszający posiada pola na np. Liczbę nieprzeczytanych powiadomień, lastRead itp.

Czy w tym przypadku warto ponownie użyć identyfikatora użytkownika, ponieważ wiem, że istnieje korespondencja 1 do 1 między użytkownikiem a powiadamiającym? A może powinienem mieć pole w głównym katalogu powiadomień odnoszące się do użytkownika? Wydaje się, że jest to niepotrzebne, ponieważ wtedy muszę szukać mapy między nimi, gdy wiem, że ich związek jest symetryczny.

Odpowiedzi

3 Christophe Jan 12 2021 at 05:09

Nie, nie używaj ponownie zagregowanych kluczy głównych do identyfikowania różnych obiektów w różnych kontekstach!

Czemu?

  • Ponieważ a Notificantnie jest User. Być może dzisiaj powiadamiani są głównie użytkownicy. Ale jutro być może będziesz musiał powiadomić osoby trzecie, które nie używają systemu, a nawet automatycznych systemów monitorowania.
  • Ponieważ jest to inny ograniczony kontekst, a ograniczone konteksty mogą ewoluować niezależnie. Może dzisiaj Useri Notificantmają tę samą szczegółowość i mogą być bezpośrednio powiązane jeden do jednego. Ale kto wie o jutrze? Musisz więc dokładnie przemyśleć, jak powinny być powiązane.