Повторное использование совокупного корневого ключа в ограниченном контексте?

Jan 12 2021

Как говорится в вопросе, является ли это плохой практикой? У меня есть совокупный корень User в ограниченном контексте Identity для аутентификации пользователя. В этом ограниченном контексте у меня есть поля для пользователя, связанные с идентификацией пользователя, например электронная почта, соленый pw и так далее.

У меня также есть общий поддомен для обработки уведомлений. В этом контексте Пользователь является уведомителем. В этом контексте Notificant имеет поля, например, для количества непрочитанных уведомлений, lastRead и т. Д.

Можно ли повторно использовать идентификатор пользователя в этом случае, поскольку я знаю, что между пользователем и уведомителем существует соответствие один-к-одному? Или мне нужно иметь поле в корне Notificant, ссылающееся на пользователя? Это кажется излишним, потому что тогда мне нужно выполнить поиск для сопоставления между ними, когда я знаю, что их отношения симметричны.

Ответы

3 Christophe Jan 12 2021 at 05:09

Нет, не используйте повторно совокупные корневые ключи для идентификации разных объектов в разных контекстах!

Зачем?

  • Потому что a Notificantне a User. Возможно, сегодня в основном пользователи получают уведомления. Но завтра вам, возможно, придется уведомить третьих лиц, которые не используют систему или даже системы автоматического мониторинга.
  • Потому что это еще один ограниченный контекст, и ограниченные контексты могут развиваться независимо. Может быть , сегодня Userи Notificantодни и те же зернистости и могут быть непосредственно связаны один к одному. Но кто знает о завтрашнем дне? Так что нужно хорошо подумать о том, как они должны быть связаны.