Laravel - возможно ли добавить внешний ключ в таблицу с типом данных String With Unsigned? - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть два стола, стол университета и стол факультас

в таблице схем Universitas, как показано ниже

public function up()
    {
        Schema::create('universitas', function (Blueprint $table) {
            $table->string('id');
            $table->string('nama_universitas');
            $table->timestamps();
        });
    }

и таблица fakultas, как показано ниже

public function up()
    {
        Schema::create('fakultas', function (Blueprint $table) {
            $table->increments('id');
            $table->string('nama_fakultas');
            $table->string('nama_universitas')->unsigned();
            $table->foreign('nama_universitas')->references('id')->on('universitas');
            $table->string('keterangan');
            $table->timestamps();
        });
    }

возможно, если я использую строку типа данных и использую unsigned?

когда я выполняю с php artisan migrate, я получаю сообщение об ошибке

1 Ответ

0 голосов
/ 02 сентября 2018

Использование unsigned в строке не имеет смысла с точки зрения базы данных. Цель unsigned - определить, может ли числовое поле принимать отрицательные значения. Например,:

$table->tinyInteger('foo');

создаст поле базы данных, которое будет принимать значения от -128 до +128, тогда как

$table->tinyInteger('foo')->unsigned();

создаст поле базы данных с диапазоном 0 - 255

Важная вещь, связанная с вашими внешними ключами, заключается в том, что тип данных внешнего ключа должен соответствовать типу данных первичного ключа другой таблицы, будь то число или строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...