无法创建多个主要属性

Unable to create multiple primary attributes

如何在Laravel中定义这种关系?我尝试在 Laravel 中开发三个主键。但它不起作用。我该如何解决这个问题?

这些键可以表示主键、外键、唯一列或索引。

一个 table 上的主键不能超过一个。

这是我尝试过的: Diagram

php .\artisan make:model Employee -m
php .\artisan make:model Title -m
php .\artisan make:model Salary -m
class CreateEmployeesTable extends Migration
{
    public function up(): void
    {
        Schema::create('employees', function (Blueprint $table) {
            $table->bigIncrements('emp_no');
            $table->string('first_name', 14);
            $table->string('last_name', 16);
            $table->date('birth_date');
            $table->date('hire_date');
        });
    }
};
class CreateTitlesTable extends Migration
{
    public function up(): void
    {
        Schema::create('titles', function (Blueprint $table) {
            $table->unsignedBigInteger('emp_no');
            $table->string('title', 50)->index();
            $table->date('from_date')->index();

            $table->foreign('emp_no')->references('emp_no')->on('employees');
        });
    }
};
class CreateSalariesTable extends Migration
{
    public function up(): void
    {
        Schema::create('salaries', function (Blueprint $table) {
            $table->unsignedBigInteger('emp_no');
            $table->integer('salary');
            $table->date('from_date')->index();

            $table->foreign('emp_no')->references('emp_no')->on('employees');
        });
    }
};

编辑

假设多个键图标表示一个组合键

class CreateEmployeesTable extends Migration
{
    public function up(): void
    {
        Schema::create('employees', function (Blueprint $table) {
            $table->bigIncrements('emp_no');
            $table->string('first_name', 14);
            $table->string('last_name', 16);
            $table->date('birth_date');
            $table->date('hire_date');
        });
    }
};
class CreateTitlesTable extends Migration
{
    public function up(): void
    {
        Schema::create('titles', function (Blueprint $table) {
            $table->unsignedBigInteger('emp_no');
            $table->string('title', 50);
            $table->date('from_date');

            $table->foreign('emp_no')->references('emp_no')->on('employees');
            $table->primary(['emp_no', 'title', 'from_date']);
        });
    }
};
class CreateSalariesTable extends Migration
{
    public function up(): void
    {
        Schema::create('salaries', function (Blueprint $table) {
            $table->unsignedBigInteger('emp_no');
            $table->integer('salary');
            $table->date('from_date');

            $table->foreign('emp_no')->references('emp_no')->on('employees');
            $table->primary(['emp_no', 'from_date']);
        });
    }
};