Laravel-可能在具有字符串类型且无符号的表上添加外键吗?

时间:2018-09-01 23:37:59

标签: php laravel migration

我有两个表,universitas表和fakultas表

关于如下的模式表大学

struct Book: Decodable {
    let title: String
    let author: String
    let genre: String

    init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        title = try values.decode(String.self, forKey: .title).capitalized
        author = try values.decode(String.self, forKey: .author)
        genre = try values.decode(String.self, forKey: .genre)
    }

    enum CodingKeys: String, CodingKey {
        case title, author, genre
    }
}

和下面的表格fakultas

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

如果我使用数据类型字符串并使用无符号,可能吗?

使用php artisan migration执行时,出现错误

1 个答案:

答案 0 :(得分:0)

从数据库角度来看,在字符串上使用 unsigned 毫无意义。 unsigned的目的是确定数字字段是否可以采用负值。例如,一个:

$table->tinyInteger('foo');

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

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

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

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