Я добавил некоторые миграции для создания таблиц SQL в приложении laravel.Основная длина ключа в SQL
Таблица пользователей
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('user_id')->unique();
$table->string('email')->unique();
$table->string('password', 60);
$table->rememberToken();
$table->timestamps();
});
}
Таблица UserRoles
public function up()
{
Schema::create('userroles', function(Blueprint $table)
{
$table->foreign('user_id')->references('user_id')->on('users');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->timestamps();
});
}
Но когда я запускаю их, я получаю ошибку:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'user_id' doesn't exist in table (SQL: alter table `userroles` add constraint userroles_user_id_foreign foreign key (`user_id`) references `users` (`user
_id`))
Почему? Думаю, вторая запись в таблице пользователей «user_id», как и ожидалось? Должен ли этот столбец быть ПК? И как этот столбец будет иметь идентификаторы GUID в качестве записей, подходит ли вообще GUID как ПК?