Riutilizzare la chiave radice aggregata in contesti limitati?

Jan 12 2021

Come afferma la domanda, questa è una cattiva pratica? Ho una radice aggregata utente nel contesto limitato di identità per l'autenticazione dell'utente. In questi contesti delimitati ho campi per l'utente relativi all'identificazione dell'utente, ad esempio email, pw salato e così via.

Ho anche un sottodominio generico per la gestione delle notifiche. In questo contesto un utente è un notificante. In questo contesto, il Notificante ha campi per ad esempio il numero di notifiche non lette, lastRead ecc.

È bene riutilizzare l'ID utente in questo caso, poiché so che esiste una corrispondenza 1 a 1 tra un utente e un notificante? O dovrei avere un campo nella root notificante che fa riferimento all'utente? Sembra ridondante, perché poi devo fare una ricerca per mappare tra loro quando so che la loro relazione è simmetrica.

Risposte

3 Christophe Jan 12 2021 at 05:09

No, non riutilizzare le chiavi radice aggregate per identificare oggetti diversi in contesti diversi!

Perché?

  • Perché a Notificantnon è a User. Forse oggi la maggior parte degli utenti riceve una notifica. Ma domani potresti dover avvisare terze parti che non utilizzano il sistema, o anche sistemi di monitoraggio automatico.
  • Perché è un altro contesto delimitato e i contesti limitati possono evolversi in modo indipendente. Forse oggi Usere Notificantcondividono la stessa granularità e possono essere direttamente correlati uno a uno. Ma chi lo sa domani? Quindi è necessario pensare attentamente a come dovrebbero essere correlati.