Réutiliser la clé racine agrégée dans des contextes limités?

Jan 12 2021

Comme l'indique la question, est-ce une mauvaise pratique? J'ai une racine d'agrégat d'utilisateur dans le contexte limité de l'identité pour authentifier l'utilisateur. Dans ces contextes délimités, j'ai des champs pour l'utilisateur liés à l'identification de l'utilisateur, par exemple e-mail, pw salé, etc.

J'ai également un sous-domaine générique pour gérer les notifications. Dans ce contexte, un utilisateur est un notifiant. Dans ce contexte, le Notificant a des champs pour par exemple le nombre de notifications non lues, lastRead etc.

Est-il bon de réutiliser l'identifiant d'utilisateur dans ce cas, car je sais qu'il existe une correspondance 1-à-1 entre un utilisateur et un notifiant? Ou devrais-je avoir un champ dans la racine de notification référençant l'utilisateur? Cela semble redondant, car alors je dois faire une recherche pour les cartographier lorsque je sais que leur relation est symétrique.

Réponses

3 Christophe Jan 12 2021 at 05:09

Non, ne réutilisez pas les clés racine agrégées pour identifier différents objets dans différents contextes!

Pourquoi?

  • Parce que a Notificantn'est pas a User. Peut-être qu'aujourd'hui, la plupart des utilisateurs sont notifiés. Mais demain, vous devrez peut-être avertir des tiers qui n'utilisent pas le système, ou même des systèmes de surveillance automatiques.
  • Parce que c'est un autre contexte borné, et les contextes bornés peuvent évoluer indépendamment. Peut-être aujourd'hui Useret Notificantpartager la même granularité et peut être directement lié un à un. Mais qui sait pour demain? Vous devez donc réfléchir attentivement à la manière dont ils devraient être liés.