Категорически приветствую!
Делаю в личном кабинете laravel страницу с инвентаризацией компьютеров в сети домена и при объявлении структуры таблиц и их отношений спотыкаюсь об ошибку внешних ключей. В чем может быть дело?
Скрипт, который собирает инфу об устройствах генерирует уникальный id для каждого компьютера и заносит инфу в базу. Соответственно, в таблицах с дисками, озу и адаптерами (ввиду их возможного множества) строки должны цепляться к основной по этому id.
public function up()
{
Schema::create('machines', function (Blueprint $table) {
// Структура
$table->bigIncrements('id');
$table->string('name')->nullable();
$table->string('username')->nullable();
$table->string('domain')->nullable();
$table->string('model')->nullable();
$table->string('serial_number')->nullable();
$table->string('os')->nullable();
$table->string('cpu')->nullable();
// Отношения
$table->integer('machine_id')->unsigned()->index();
$table->foreign('machine_id')->references('m_id')->on('diskdrives')->onDelete('cascade');
//$table->foreign('machine_id')->references('m_id')->on('ram')->onDelete('cascade');
//$table->foreign('machine_id')->references('m_id')->on('net_adapters')->onDelete('cascade');
$table->timestamps();
});
}
public function up()
{
Schema::create('diskdrives', function (Blueprint $table) {
// Структура
$table->bigIncrements('id')->primary();
$table->integer('m_id')->nullable()->unsigned()->index();
$table->string('serial_number')->nullable();
$table->string('type')->nullable();
$table->string('model')->nullable();
$table->float('capacity')->nullable();
});
}
General error: 1005 Can't create table `inventory`.`machines` (errno: 150 "Foreign key constraint is incorrectly formed") (SQL: alter table `machines` add constraint `machines_machine_id_foreign` foreign key (`machine_id`) references `diskdrives` (`m_id`) on delete cascade)
И ещё такой вопрос: можно ли из основного файла к полю machine_id по внешнему ключу привязать еще два? (которые закомментированы).