راکت
حل شده

اگه کلید خارجی رو قرار ندیم چ اتفاقی میوفته

2 پاسخ

سلام یه سوالی که برام پیش اومده بود اینه که مثلا اگه ما بجای اینکه کلید خارجی رو اینجوری تعریف کنیم

table->foreignId('user_id')->references('id')->on('users')->onDelete('cascade')

بیایم و به این شکل وارد کنیم

table->integer('user_id');

چ مشکلی پیش میاد؟
البته ارتباط ها رو در Model ها تعریف میکنیم

ثبت پرسش جدید

پاسخ‌ها

2
Muhammad
Muhammad
@muhammad

تخصص: Back-End Developer

بهترین پاسخ

سلام. سوال خوبیه و برای همین همیشه میگم برنامه‌نویسی فقط تجربه نیست و قبل این دانش و تئوریه. شما از کلید خارجی باید استفاده کنید تا:

  1. integrity دیتابیس حفظ بشه. فکرشو کنین که یه یوزر حذف شده ولی کامنت‌هاش موندن، حالا کامنت‌هایی داریم که به کاربری که وجود نداره اشاره می‌کنن!
  2. Foriegn Keyها ایندکس میشن، پس وقتی روی اونها شرطی اجرا بشه، سرعت بهتری رو شاهد هستید.
saman
saman
@saman1111

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

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

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

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