В моем проекте у меня есть таблица журналов, таблица ежемесячников, таблица ссуд, таблица инвестиций. В журнальной таблице есть payment_id, который я хочу дать внешний ключ для идентификатора ежемесячных таблиц, ссуд и инвестиций. Я пробовал это, но при миграции возникает ошибка «дубликат ключа при записи или обновлении»
я хочу вставить идентификатор ссуды, инвестиций, месячных в таблицу журналов payment_id при создании ссуды, инвестиций, ежемесячных платежей. Я могу вставить только один идентификатор таблицы в таблицу журналов payment_id (через отношение внешнего ключа в миграции), а не несколько ... как это сделать?
public function up()
{
Schema::create('journals', function (Blueprint $table) {
$table->increments('id');
$table->double('amount');
$table->integer('payment_id')->unsigned();
$table->enum('payment_format', ['monthly', 'investment', 'loan', 'income', 'expense', 'others']);
$table->string('short_description');
$table->integer('created_by')->unsigned();
$table->integer('updated_by')->unsigned();
$table->dateTime('deleted_at');
$table->timestamps();
$table->foreign('payment_id')->references('id')->on('monthlies')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('payment_id')->references('id')->on('investments')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('payment_id')->references('id')->on('loans')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('created_by')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->foreign('updated_by')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
});
}