3 سال پیش|
برنامهنویسی وب
ایجاد کلید ترکیبی یکتا در مایگریشن لاراول (Unique Composite Key)
اگر قصد داشته باشیم از طریق Migrationها در لاراول جدول یا جدولهایی ایجاد کنیم که شامل فیلدهایی باشند که قرار باشد به صورت ترکیبی عمل کرده و در عین حال unique نیز باشند (Composite key Unique on two Columns with Values)، میتوان از راهکار زیر استفاده کرد.
فرض من بر این است که من یک جدول به نام post_tag دارم که شامل فیلدهای زیر است:
id
post_id
tag_id
created_at
updated_at
قرار است هیچ رکوردی که ترکیبی از post_id و tag_id است، نتواند بیش از یکبار در این جدول به ثبت برسد و به اصطلاح unique باشد. برای این کار در migration خود ابتدا تمام فیلدها و نوع آنها را تعیین میکنم و سپس مشخص میکنم که فیلدهای post_id و tag_id به صورت ترکیبی (Composite) در نظر گرفته شوند و ترکیبشان نیز غیرقابل تکرار (unique) باشد.
public function up()
{
Schema::create('category_post', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('category_id');
$table->unsignedBigInteger('post_id');
$table->unique(['category_id','post_id']);
$table->timestamps();
});
}
بهروز رسانی: 1403/7/22
توی وبسایتم سعی میکنم محتوایی که تصور کنم ارزشمنده و به بقیه کمکی میکنه رو منتشر کنم. امیدوارم از مطالب وبسایت بتونید استفاده کنید و به کارتون بیاد. در ضمن اگه پروژهی تحت وبی دارید که نیاز به برنامهنویسی و اجرا داره، میتونید با شماره انتهای صفحه با من تماس بگیرید تا در موردش با هم صحبت کنیم.