2016-03-26 15 views
2

Sistemim, üzerinde bazı bilgilere sahip olduğumuz bir "hayalet kullanıcı" olan "İrtibat" diline sahiptir; doğrulama kuralları zayıftır ve durumu büyük ölçüde iletişim bilgileridir. . Ayrıca, tam olarak kayıtlı ve kayıtlı bir kullanıcı olan "Kullanıcı" kavramına sahibiz. Etkili "İletişim" olarak bir "Kullanıcı" düşünün.Başvurulan bir toplam kökü başka bir toplam köke aktarma

Yakalamaya çalıştığımız yaşam döngüsü, bir kişinin "İletişim" bilgilerini kaydettikten sonra bir "Kişinin" tarafından değiştirileceğidir.

Sistemde, "İletişim" öğesinin UUID'sini işaret eden bir "ContactId" öğesine başvuru yapan başka birleşik köklerimiz var. Bu "İletişim" kaydına girdiğinde, bunları "Kullanıcı" alan adıyla yeni bir "Kullanıcı" kavramını kullanmak isteriz ve "Kullanıcı" şimdi kendi "Kullanıcı Kimliği" UUID'sine sahiptir.

  1. "Contact" aracılığıyla bir "ContactID" üzerinden başvuruda bulunan ilişkileri nasıl saklayabiliriz?
  2. Topluluğumu başka bir taneye geçirmeye çalışırken temel bir sorun var mı?
  3. Böyle bir durumda, "İletişim" -> "Kayıtlı Kullanıcı" nın bu özel yaşam döngüsünü nasıl modellemeliyim?
  4. Yanıt, iki fikri tek bir toplam kökle birleştirmekse, etki alanı nesnelerimin her zaman geçerli olmasını sağlayabilirim, "Kullanıcı" bu "Kişi" gerçekte kaydedilinceye kadar geçerli olmamasına rağmen nasıl olabilir?

Bir yan not olarak, genel mimari için CQRS/ES kullanıyoruz.

Teşekkürler!

+1

Kişiyi kullanmaya devam edeceğim, bunun için başka bir ad bulabilirsiniz. Kullanıcı kaydedileceği zaman Kimlik Doğrulama alt alanına uygun bağlantı sağlanacaktır. Diğer kümeler/BC'ler için, eğer bu bir öncü veya gerçek kullanıcı ise, ancak kısmen ilginç olabilir, ancak eğer bilmek isterlerse, bu bilgiyi her zaman adına dahil olmak üzere Kişi referansını tuttuğunuz değer nesnesine dahil edebilirsiniz. –

+0

Henüz projelerimden birinde tamamen kayıtlı olan kullanıcılar için * Başvuru Sahibi * terimini kullanıyorum. Ayrıca satış vadesini * kullanabilirsiniz *. –

+0

@ChrisTickner Neden 'İletişim 'ilişkisini' Kullanıcı 'ilişkisine çevirmeniz gerekiyor? Yönlendiren kuruluş neden bakım yapıyor? Bunun için bir kullanım örneği var mı? – guillaume31

cevap

2

Açıklamakta olduğunuz şey aslında her zaman olduğu için bu garip değil.

Bir Quote olan bir ShoppingCart olabilir, bu Order haline gelir ve Invoice olur. Kavramları birleştirmeye çalışmak genellikle ağrı ve ıstıraplara yol açar.

onlar may çok yakından birbirinden ayrı kavramlar gibi görünen yapmak kesinlikle onlar tarafından alakalı gibi beri ayrı tutarak ve kendi yaşam döngüsü ile bunları ele düşündürmektedir.

'Hayalet kullanıcınızda' bir ipucu olabilir. Bu, muhtemelen doğru bir şekilde tanımlanmayan bir varlık/AR'dir. Bu kavramı, nasıl kullanıldığına bağlı olarak ele almak için farklı yollar olacak. İki kaynak varlığın kalıbını temsil eden bir değer nesnesi kadar basit olabilir.

+0

Teşekkürler. Her ikisini de kapsülleyen tek bir AR kullanmak mantıklı olabilir mi?Örneğin "İletişim" verileri için bir Değer Nesnesi olan bir "Kimlik" AR ve ayrıca kullanıcı kayıtlıysa "Kullanıcı" varlığı var mı? Ya da, bir "fikir" içine çok fazla ekleme mi? Unutmayın, benim asıl kaygım bu AR'ye UUID referanslarını saklayan diğer AR'lerle ilgilidir. –

+0

Bu, alanınıza bağlı. Önerdiğin şey çok fazla alınmadı. Örneğin, bir "OrderLine" siparişi verilen "Ürün" kimliğine sahip bir 'OrderProduct' VO'yu içerebilir. Ama tipik olarak belirli bir maddeyi stoklamaysak ne olur? Mesela, bisiklet dükkanımda ikinci el bir bisiklet sattığımda, hiçbir 'ProductId 'olmayacaktı; sadece bir 'Açıklama' ve' Fiyat' yerine. Belki de bu çizgiler boyunca bir şey yardımcı olur. Alan uzmanlarınız burada yardımcı olmalıdır. –