راکت
حل شده

ستون های زیاد یا رابطه یک به یک

4 پاسخ

سلام دوستان وقت همگی بخیر
ما یک جدول محصول داریم که دارای فیلدهای قیمتی و چند فیلد دیگه هست و همچنین دارای 10-12 فیلد که برای یه سری قوانین اون محصول است
بنظرتون این 10 فیلدی که گفتم به عنوان ستون در همین جدول محصول در نظر بگیریم یا براش یک رابطه یک به یک بزنیم؟
سرعت لود و بهینه سازی در کدوم روش بهتره؟

ثبت پرسش جدید

پاسخ‌ها

4
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

بستگی داره بخواهی به چه شکل داده ها رو واکشی کنی
و اینکه چه ساختاری رو برای دیتابیست داری

بعضی مواقع راهکار خوبیه که برای برخی اطلاعاتی که کمتر استفاده میشند، یه ستون به جدول اصلی اضافه کنی. این جوری کوئری ها هم یه مقدار سبک تر میشند. اما از طرفی جدول اصلی بزرگ میشه و پر از اطلاعاتی میشه که شاید همیشه لازم نباشند

ولی اگر قراره بیش از یک ویژگی داشته باشی که ربط آنچنانی هم به جدول اصلی نداره،‌ساخت جدول جدید بهتره

مثلا اگر مشخصات فیزیک محصول شامل فقط وزن بشه، خوب میشه از همون یک فیلد اضافه استفاده کرد
اما اگر قرار باشه مشخصات فیزیکی شامل وزن، ابعاد و رنگ و غیره باشه بهتره از جدول جدید استفاده کرد

این یک قاعده کلی هست و ممکنه در شرایط خاص یک پروژه همچین اتفاقی نیفته

saman
saman
@saman1111

سلام
اگه همیشه اون ستون ها قراره پر بشن توی همون جدول در نظر بگیرید بهتره

علی امینی
علی امینی
@mehdi2private

خیلی ممنون از پاسخ بسیار خوبتون
فقط بنظرتون باید در زمان واکشی کردن اطلاعات از این جدول از اینتر جوین استفاده شود بهتر است یا ساب کوئری؟
بنظرتون باید از جوین یا ساب کوئری اجتناب کرد؟
@ali.bayat

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بسته به استفاده شما از Eloquent یا Query Builder لاراول در پشت صحنه یک کوئری میسازه و اجرا میکنه
حالا با توجه به نوع کوئری که میزنی، ممکنه حالاتی که نام بردی در شرایط مختلف جاشون عوض بشه.

بهترین راه برای اینکه بفمی کدوم کوئری بهینه تره .. اینه که بررسی کنی و ببینی کدوم یکی با داده های مختلف سریع تر اجرا میشه

از ابزارهای دیباگ مثل laravel debugbar یا Telescope استفاده کن.. که زمان کوئری ها رو بهت میده و میتونی مقایسه کنی


در ضمن روابط بین مدل ها هم در جاهای زیادی از JOIN ها بهره برده..

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام