- 複合主キーを使用する方法: テーブルに二つの主キーを持たせるためには、複合主キーを使用します。以下は、マイグレーションファイルの例です。
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');
}
}
上記の例では、column1
とcolumn2
が複合主キーとなります。
- 別々の主キーを使用する方法: 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
という名前のカラムが追加され、それが新しい主キーとなります。
これらは、二つの主キーを持つテーブルを作成するための一般的な方法です。マイグレーションファイルを作成し、必要なカラムと主キーの定義を追加してください。