سلام به همه ی دوستان
آیا polimorphic در laravel روش بهینه ای است ؟
مثلا من در قسمت payment سایت آمدم از polymorphic استفاده کردم (من در سایت چندین پرداخت متفاوت دارم مثلا خرید محصول و ثبت تعرفه و افزایش مومودی کیف پول) که تمام این ها را با polimorphic پیاده کردم.
یا این که بهتر است از چند جدول استفاده کنم(مثلا بخش خرید محصول و ثبت تعرفه را در یک جدول با polymorphic و افزایش موجودی کیف پول را در یک جدول مستقل دیگر پیاده سازی کنم)؟
یک نکته کلی اینکه تا جایی که من میدونم اینجور مباحث همیشه از نوع Trade-Off مسحوب میشن. یعنی همیشه هر یک از دو حالت خوبی هایی دارند و بدی هایی و هیچ وقت نمیشه یک پاسخ عمومی و ثابت برای همه شرایط گفت.
اما بصورت کلی در خصوص موضوع سوال، منطقا و طبق تجربه اگر همه انواع payment هاتون مشترکات زیادی با هم دارند و خیلی با حالت های خاص روبرو نیستید استفاده از روابط polymorphic خیلی میتونه انتخاب خوبی باشه و کدها تمیزتر و خواناتر و قابل فهمتر میشوند.
در خصوص Performance هم اگر نکته طلایی indexing رو به درستی اعمال کنید تفاوت خاصی با حالت معمولی نخواهد داشت. برای index کردن هم در فایل migration باید از composite index استفاده کنید. یعنی به ازای مقادیر دو ستون payable_type و payable_id بصورت همزمان index ایجاد بشه:
$table->index(['payable_type', 'payable_id']);
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟