Menggunakan kembali kunci root agregat di seluruh konteks yang dibatasi?

Jan 12 2021

Seperti yang dinyatakan dalam pertanyaan, apakah ini praktik yang buruk? Saya memiliki akar agregat Pengguna dalam konteks terbatas Identitas untuk mengautentikasi pengguna. Dalam konteks terikat ini saya memiliki bidang untuk Pengguna yang terkait dengan identifikasi Pengguna misalnya email, pw asin, dan sebagainya.

Saya juga memiliki subdomain umum untuk menangani pemberitahuan. Dalam konteks ini, Pengguna adalah Notificant. Dalam konteks ini, Notificant memiliki field misalnya jumlah notifikasi yang belum dibaca, lastRead dll.

Apakah baik untuk menggunakan kembali ID Pengguna dalam kasus ini, karena saya tahu ada korespondensi 1-ke-1 antara Pengguna dan Pemberitahu? Atau haruskah saya memiliki kolom di root Notificant yang mereferensikan Pengguna? Rasanya mubazir, karena kemudian saya harus melakukan pencarian untuk memetakan di antara mereka ketika saya tahu hubungannya simetris.

Jawaban

3 Christophe Jan 12 2021 at 05:09

Tidak, jangan gunakan kembali kunci root agregat untuk mengidentifikasi objek berbeda dalam konteks berbeda!

Mengapa?

  • Karena a Notificantbukan a User. Mungkin hari ini, sebagian besar pengguna diberi tahu. Tetapi besok Anda mungkin harus memberi tahu pihak ketiga yang tidak menggunakan sistem, atau bahkan sistem pemantauan otomatis.
  • Karena itu adalah konteks terbatas lainnya, dan konteks terbatas dapat berkembang secara independen. Mungkin hari ini Userdan Notificantberbagi granularitas yang sama dan mungkin berhubungan langsung satu dengan satu. Tapi siapa yang tahu tentang hari esok? Jadi, Anda perlu memikirkan dengan cermat bagaimana mereka harus dikaitkan.