Я хочу добавить отношение (один ко многим) в мою базу данных MySql.
У меня есть таблица с сообщениями в блогах, и теперь я хочу подсчитать читателей.
Я написал миграцию, добавил модели, контроллеры, все в порядке.
Но если я смотрю с помощью workbench или phpMyAdmin, я не показываю связь в дизайнере, и я не знаю почему - связь отсутствует.
В документе Laravel я нашел:
Laravel also provides support for creating foreign key constraints, which are used to force referential integrity at the database level.
https://laravel.com/docs/5.4/migrations#foreign-key-constraints
Я думаю, что моя ошибка прямо в моем мозгу или в файле миграции.
Я импортировал дамп mysql в прошлом проекта. Есть отношения, которые работают - они проявляются.
У меня есть вопросы:
Я не знаю, где моя ошибка.
Каковы правильные шаги для создания отношения, которое также отображается визуально в workbench или phpMyAdmin на уровне базы данных с laravel.
Если я снова перенесу весь проект, никаких отношений не будет видно.
но миграция php artisan прошла успешно
Вот несколько примеров моих файлов миграции:
public function up()
{
Schema::create('column', function (Blueprint $table) {
$table->increments('id');
$table->integer('count');
$table->unsignedInteger('post_id');
$table->timestamps();
$table->foreign('post_id')->references('id')->on('posts');
});
}
Вы можете использовать innodb в качестве движка по умолчанию в MySQL, поэтому вы можете не указывать его внутри миграции, как это
Что вы имеете в виду под "никаких отношений не видно". Как вы поняли, что ссылки не установлены?
База данных была смешана с различными механизмами хранения, использование InnoDb было окончательным решением для просмотра отношений в рабочей среде.






Я нашел какое-то решение, было важно добавить $table->engine = "InnoDb"