Pooria
4 سال پیش توسط Pooria مطرح شد
2 پاسخ

ساختار دیتابیس مربوط به یک جدول مشترک

سلام

من sql کار میکنم

در نظر بگیرید سایتی برای دوره ها و مقالات بخش نظرات داره و حالا میخواد بخش محصولات رو به سایتش اضافه کنه ،
طبیعتا ساخت جدول منحصر به فرد برای نظرات برای هر Post Type درست نیست!

راه حل چیست؟


ثبت پرسش جدید
وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش آپدیت شد
0

@pooriaset
یک راه همینه که خودتون فرمودید ، یعنی با فرض اینکه یک جدول برای تمام کامنت ها دارید و برای کامنت های هر بخش یه جدول پیوت درست کنید و رابطه many to many رو پیاده سازی کنید .
راه بهتر اینه که رابطه پلی مورفیک یک به چند رو پیاده سازی کنید ( one to many polymorphic ) , یعنی به جای اینکه برای برای هر کدوم جدول پیوت درست کنید ، توی همون جدول کامنت ها مشخص کنید که این کامنت برای کدوم مدل با کدوم آیدی هست ، به اصطلاح برای کدوم commentable هست , در اینجا شما کافیه ستون های commentabletype , commentableid رو به جدول کامنت ها اضافه کنید . برای ست کردنش به داکیومنت لاراول مراجعه کنید ،
برای کامنت همین روش دوم جواب میده ولی اگر جایی استفاده بالایی از جدولتون داشتید ، بهتره فشار رو روی چند تیبل پخش کنید و روابطتون رو به صورت یک به چند پیاده سازی کنید مثلا در این مثال برای هر بخش یک جدول کامنت درست کنید.


میلاد
تخصص : برنامه نویس
@milad.jafari6210 4 سال پیش مطرح شد
0

سلام وقت بخیر
از روابط Polymorphicاستفاده کنید
با کمی جست و جو متوجه خواهید شد ساختارش رو


وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش آپدیت شد
0

@pooriaset
یک راه همینه که خودتون فرمودید ، یعنی با فرض اینکه یک جدول برای تمام کامنت ها دارید و برای کامنت های هر بخش یه جدول پیوت درست کنید و رابطه many to many رو پیاده سازی کنید .
راه بهتر اینه که رابطه پلی مورفیک یک به چند رو پیاده سازی کنید ( one to many polymorphic ) , یعنی به جای اینکه برای برای هر کدوم جدول پیوت درست کنید ، توی همون جدول کامنت ها مشخص کنید که این کامنت برای کدوم مدل با کدوم آیدی هست ، به اصطلاح برای کدوم commentable هست , در اینجا شما کافیه ستون های commentabletype , commentableid رو به جدول کامنت ها اضافه کنید . برای ست کردنش به داکیومنت لاراول مراجعه کنید ،
برای کامنت همین روش دوم جواب میده ولی اگر جایی استفاده بالایی از جدولتون داشتید ، بهتره فشار رو روی چند تیبل پخش کنید و روابطتون رو به صورت یک به چند پیاده سازی کنید مثلا در این مثال برای هر بخش یک جدول کامنت درست کنید.


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

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