سلام و عرض ادب
چند تا سوال داشتم:
۱- وقتی توی دیتابیس فلان ستون رو index میکنیم، این index چه کاری انجام میده؟ منظور از index گذاری چیه؟
۲- یک نکته ای که تا الان چند بار شنیدم اینه که index گذاری زیادیش خوب نیست، دلیلش چیه؟
۳- چه جاهایی رو باید index گذاری کنیم توی دیتابیس؟
۴- وقتی توی migration میایم یک ستونی رو constrained میکنیم، این چه کاری انجام میده؟ فرقش با حالتی که نمیذاریم چیه؟
۵- فرض کنید که توی همین پروژه میخوایم اگر badgeی رو حذف کردیم که یک user قبلا اون رو بدست اورده و به عبارتی توی جدول badge_user از این badge رکورد وجود داره، توی لیست badgeهای یوزر پاک نشه و یوز بتونه badge رو ببینه. اگر بیایم migrationمون رو به این حالت تعریف کنیم:
Schema::create('badge_user', function (Blueprint $table) {
$table->foreignId('badge_id');
$table->foreignId('user_id')->constrained()->cascadeOnDelete();
});
خب وقتی badge رو حذف کردیم، دیگه توی جدول badge_user حذف نمیشه، ولی توی جدول badges حذف میشه. تو این حالت باید چطوری badge رو به user نمایش بدیم؟ آیا تو این حالت استفاده از soft delete کار درستیه؟