کانال تلگرامی وبلاگ میکروفرانتاند. مباحثی پیرامون هوش مصنوعی و یادگیری ماشین، معماری نرم افزار با تمرکز بر DDD ، میکروسرویس و میکروفرانتاند
www.microfrontend.ir
@hemanhp2
Post #119
795
Microfrontend.ir پیاده سازی Django Soft Delete چندی پیش خبری منتشر شد که در توییتر حذف دادهها به درستی انجام نمیشود. واقعیت این است که در اغلب نرمافزارهای مدرن دادهها به صورت فیزیکی حذف نمیشوند و صرفا برچسپ حذف شده میگیرند. در این ویدیو با هدف آشنایی بیشتر با مدلهای…
یکی از دوستان کامنت بسیار مهمی تو یوتیوب نوشته بودند و دیدم خالی از لطف نیست اینجا هم پست کنم.
سوال :
Vessal Daneshvar
برای فیلد های یونیک هم میشه راهنمایی بکنید که soft delete چجوی باشه بهتره ، معمولا یه مقدار پیچیدگی ایجاد میشه موقع پیاده سازی کردن مواردی که باید یونیک باشن و حذف شده اند و مجدد میخوان ایجاد بشن
جواب:
میدونید که یونیک در واقع یک کانستراینت و ایندکس سمت دیتابیسه. یکی از ویژگی های بسیار مهم و جذابی که ارایه میده تعریف conditional constraint که مثلا تو سناریو این ویدیو میتونید بگید ایندکس یونیک صرفا رو مواردی که is_deleted فالس هست اعمال شوند. مثلا به این صورت
UniqueConstraint(fields=['user'], condition=Q(status='DRAFT'), name='unique_draft_user')
جزییات کاملتر تو داکیومنتیشن اینجاست.
https://docs.djangoproject.com/en/4.1/ref/models/constraints/#condition
پی نوشت: از منظر مدیریت ایندکس و کانستراینتها به جرات میتونم بگم جنگو یه سر و گردن از سایر ORM ها مثل لاراول بالاتره.البته دلیلش خود جنگو یا لاراول نیست. دلیلش فرهنگ حاکم بر کامیونیتشونه. تو کامیونیتی php انتخاب اول دیتابیس عموما MySQL و مشتقاتشه اما تو پایتون معمولا انتخاب اول PostgreSQL هستش و نکته اینجاست که مای اس کیو برای ایندکس تمرکزش بر ایندکس های مبتنی بر درخته و خیلی خوب این کارو میکنه. تو پستگرس علاوه بر ایندکس های مبتنی بر درخت، طیف گسترده ای از ایندکس ها شامل expression و partial رو ساپورت میکنه
سوال :
Vessal Daneshvar
برای فیلد های یونیک هم میشه راهنمایی بکنید که soft delete چجوی باشه بهتره ، معمولا یه مقدار پیچیدگی ایجاد میشه موقع پیاده سازی کردن مواردی که باید یونیک باشن و حذف شده اند و مجدد میخوان ایجاد بشن
جواب:
میدونید که یونیک در واقع یک کانستراینت و ایندکس سمت دیتابیسه. یکی از ویژگی های بسیار مهم و جذابی که ارایه میده تعریف conditional constraint که مثلا تو سناریو این ویدیو میتونید بگید ایندکس یونیک صرفا رو مواردی که is_deleted فالس هست اعمال شوند. مثلا به این صورت
UniqueConstraint(fields=['user'], condition=Q(status='DRAFT'), name='unique_draft_user')
جزییات کاملتر تو داکیومنتیشن اینجاست.
https://docs.djangoproject.com/en/4.1/ref/models/constraints/#condition
پی نوشت: از منظر مدیریت ایندکس و کانستراینتها به جرات میتونم بگم جنگو یه سر و گردن از سایر ORM ها مثل لاراول بالاتره.البته دلیلش خود جنگو یا لاراول نیست. دلیلش فرهنگ حاکم بر کامیونیتشونه. تو کامیونیتی php انتخاب اول دیتابیس عموما MySQL و مشتقاتشه اما تو پایتون معمولا انتخاب اول PostgreSQL هستش و نکته اینجاست که مای اس کیو برای ایندکس تمرکزش بر ایندکس های مبتنی بر درخته و خیلی خوب این کارو میکنه. تو پستگرس علاوه بر ایندکس های مبتنی بر درخت، طیف گسترده ای از ایندکس ها شامل expression و partial رو ساپورت میکنه
- 👍 8
- 🔥 4


















