Laravelでの二つの主キーを持つマイグレーションの作成方法


  1. 複合主キーを使用する方法: テーブルに二つの主キーを持たせるためには、複合主キーを使用します。以下は、マイグレーションファイルの例です。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateYourTable extends Migration
{
    public function up()
    {
        Schema::create('your_table', function (Blueprint $table) {
            $table->primary(['column1', 'column2']);
            // 他のカラムの定義
        });
    }
    public function down()
    {
        Schema::dropIfExists('your_table');
    }
}

上記の例では、column1column2が複合主キーとなります。

  1. 別々の主キーを使用する方法: Laravelでは、デフォルトで自動増分のIDカラムが主キーとして設定されます。この場合、別の主キーを追加するには、以下の手順を実行します。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddSecondPrimaryKeyToYourTable extends Migration
{
    public function up()
    {
        Schema::table('your_table', function (Blueprint $table) {
            $table->unsignedBigInteger('second_primary_key')->primary()->after('id');
        });
    }
    public function down()
    {
        Schema::table('your_table', function (Blueprint $table) {
            $table->dropPrimary('your_table_second_primary_key_primary');
            $table->dropColumn('second_primary_key');
        });
    }
}

上記の例では、second_primary_keyという名前のカラムが追加され、それが新しい主キーとなります。

これらは、二つの主キーを持つテーブルを作成するための一般的な方法です。マイグレーションファイルを作成し、必要なカラムと主キーの定義を追加してください。