ارتباط انتیتی comment و product

سوال شده توسط: bzmind ‌

تاریخ ثبت: ۱۴۰۰/۱۲/۰۳

بازدید: 823

پاسخ: 4

تگ: Asp.net Core


سلام، استاد با اینکه چند تا سوال پرسیدم ولی هنوز کامل متوجه نشدم این موضوع رو، شما تو سوالای قبلی گفتید که کامنت رو نباید جزو اگریگیت پروداکت کرد چون مربوط نیست، ولی خب مگه کامنت بیشتر مربوط نیست به همین پروداکت؟ چون پروداکت نباشه کامنتی هم نیست، و اگر یه پروداکت حذف شه، کامنت هاش هم حذف میشه، خب این مگه منطق بیزینسمون به حساب نمیاد؟ اصلا درباره دیتابیس هم فکر نکنیم، اینطوری بنظر میاد که این 2 تا مربوط به هم هستن، خب پس چرا نباید توی اگریگیت پروداکت گذاشت کامنت رو؟

پاسخ ها
user

سجاد میرشبی

سلام

ببین فرض کن تو یه سایت داری که هم فروشگاه داره، هم وبلاگ داره. خب در این صورت اگه کامنت رو جزو اگریگیت محصولات در نظر بگیری دیگه برای وبلاگ نمیتونی از همون استفاده کنی. در عوض میتونی کامنت رو جدا در نظر بگیری و فقط بهش بگی مربوط به کدوم بخش هست، وبلاگ یا محصولات (که میتونه Enum یا … باشه) و یه آیدی هم برای مثال با نام RelatedId دریافت کنی. بعد مثلا تو صفحه یه محصول که میری میگی از بین اون کامنتایی که مربوط به محصولات هستن اونی که RelatedId برابر با آیدی این محصول هست رو بیار، یا همین حالت برای وبلاگ. اینطوری سرویس کامنتت رو هر جایی میتونی استفاده کنی.

البته این برداشت منه باز استاد میان کامل تر توضیح میدن

user

bzmind ‌

ممنون که جواب دادی، آره در اون صورت بدرد بخور هست، بین 2 تا جا میشه استفادش کرد، ولی حالا در نظر بگیریم فقط توی صفحه محصول قراره کامنت داشته باشه، من کلا میخوام بدونم چجوریه که با اینکه کامنت انقد مربوط هست به پروداکت ولی نباید تو اگریگیت پروداکت باشه، ینی بر چه اساسی نباید باشه، خب اینکه جزو منطق سیستممون محسوب میشه (همینم مطمئن نیستم، اصلا شاید سوالم همین باشه که چجوری بیزینس رول ها رو تشخیص بدیم دقیقا)، میخواستم بدونم چرا استاد اشرافی تشخیص دادن که نباید باشه، آخه خیلی مربوط به هم هستن، حذف شدنشون هم مربوط به همه، من یکم گیج شدم.

 

سوال دیگمم اینه که وقتی یه اگریگیت روت زیادی پُر شد چیکارش باید کرد؟ من اگر الان توی اگریگیت پروداکتم، انتیتی کامنت و سوال جواب هم اضافه کنم، نزدیک 15 تا پراپرتی میشن رو هم دیگه :|

user

محمد اشرافی

سلام ، ببینید هیچ چارچوب دقیقی وجود نداره که بگیم حتما بر اساس این چارچوب باید Aggregate هارو درست کرد یا بگیم کدوم روش درسته و کدوم روش غلط ه، همه چی بر اساس دیدگاه شما نسبت به نرم افزاری که قراره بسازید شکل میگیره

دید من نسبت به کامنت یه دید وسیع ای ه و چون می دونم قراره برای چنتا انتیتی استفاده بشه و منطق زیادی توش داره پس جداش میکنم تا aggregate محصول درگیر این پیچیدگی نشه

حالا از طرف دیگه یه پروژه ساده دستم میاد و بر اساس اون تحلیلی که از پروژه انجام دادم می دونم که این کامنت پیچیدگی ای نداره ، منطق ه زیادی هم نداره فقط هم برای یک انتیتی استفاده میشه ، در این صورت جداش نمیکنم

-----------

2 - این سوال تون هم مثل سوال اول جواب اش بستگی به خودتون داره ، درست یا غلط وجود نداره ، من تاحالا روی پروژه ای کار کردم که انتیتی Product اش بالای 50 تا پراپررتی داشته و مدیریت اش فوق العاده سخت شده بود در مقابل توی پروژه ای هم بودم که 10 12 تا داشته و طبیعتا هر چی Aggregate کوچیک تر باشه مدیریت اش هم آسون تر میشه . حالا برید برسی کنید که این انتیتی ها کجا قرار بگیرن بهتر میشه کنترل اشون کرد.

تنها راه ی که می تونید خودتون رو از این سر درگمی رها کنید اینه که بر اساس اون چیزی که می دونید پیش برید و انجام اش بدین ، کاری به درست یا غلط بودن نداشته باشید ، هیچ چیز غلط نیست ، شما الان با دیدگاه فعلی تون به یه شکل این رو پیده سازی میکنید ، و در مقابل توی پروژه بعدی ، تجربیات بیشتری کسب کردین و قطعا می دونید چه کارهایی رو باید انجام بدین چی رو نباید انجام بدین و … 

--------

و در آخر باز هم میگم تنها چارچوبی که می تونید بر اساس اون Aggregate ها تون رو بسازید تجربیات خودتون و شرایط پروژه اتونه

user

bzmind ‌

ممنون استاد که وقت زاشتید توضیح داد، خیلی مفید بود، تشکر

برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات