Reutilizar a chave raiz agregada em contextos limitados?

Jan 12 2021

Como afirma a pergunta, isso é uma má prática? Eu tenho uma raiz agregada de usuário no contexto limitado de identidade para autenticar o usuário. Nestes contextos limitados, tenho campos para o usuário relacionados à identificação do usuário, por exemplo, e-mail, salted pw e assim por diante.

Eu também tenho um subdomínio genérico para lidar com notificações. Neste contexto, um usuário é um notificante. Neste contexto, o Notificant tem campos para, por exemplo, o número de notificações não lidas, lastRead etc.

É bom reutilizar o ID do usuário neste caso, pois eu sei que há uma correspondência 1 para 1 entre um usuário e uma pessoa importante? Ou devo ter um campo na raiz Notificant referenciando o usuário? Parece redundante, porque então tenho que fazer uma pesquisa para mapear entre eles quando sei que sua relação é simétrica.

Respostas

3 Christophe Jan 12 2021 at 05:09

Não, não reutilize chaves raiz agregadas para identificar objetos diferentes em contextos diferentes!

Por quê?

  • Porque a Notificantnão é a User. Talvez hoje, principalmente os usuários sejam notificados. Mas amanhã você pode ter que notificar terceiros que não estão usando o sistema, ou mesmo sistemas de monitoramento automático.
  • Porque é outro contexto limitado, e contextos limitados podem evoluir independentemente. Talvez hoje Usere Notificantcompartilhe a mesma granularidade e pode estar diretamente relacionado um a um. Mas quem sabe sobre o amanhã? Portanto, você precisa pensar cuidadosamente sobre como eles devem estar relacionados.