Laravel - 它可能在表上添加外键,数据类型字符串是否未签名?

问题描述 投票:2回答:1

我有两个表,表universitas和表fakultas

在大学架构表上,如下所示

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执行时,我得到一个错误

php laravel migration
1个回答
0
投票

从数据库的角度来看,在字符串上使用unsigned是没有意义的。无符号的目的是确定数字字段是否可以取负值。例如,a:

$table->tinyInteger('foo');

将创建一个数据库字段,该字段将取-128和+128之间的值,而

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

将创建一个范围为0 - 255的数据库字段

外键的重要一点是外键的数据类型必须与另一个表的主键的数据类型匹配,无论它是数字还是字符串。

© www.soinside.com 2019 - 2024. All rights reserved.