Laravel 7 физических отношений между таблицами нет - PullRequest
1 голос
/ 26 апреля 2020

Я следовал учебному пособию о взаимоотношениях «многие ко многим» с Laravel (в моем случае - 7).

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

Я создал отношения многие ко многим, которые должны связать 3 таблицы, продукты, категории и products_categories

Мои вопросы:

1 - Важно ли иметь физические отношения в схеме базы данных? 2- Как я могу сделать так, чтобы эти отношения появились на моей диаграмме?

Вот текущее фото схемы базы данных:

enter image description here

В этой базе данных у меня есть ссылки между таблицами:

enter image description here

1 Ответ

1 голос
/ 26 апреля 2020

Отношения Laravel не совпадают с отношениями вашей базы данных (MySQL или другими).

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

Если вы хотите увидеть взаимосвязи между вашими таблицами, обязательно укажите внешние ключи в вашей схеме миграции (https://laravel.com/docs/7.x/migrations#foreign -key- ограничения ), такие как:

Schema::table('posts', function (Blueprint $table) {
    $table->unsignedBigInteger('user_id');

    $table->foreign('user_id')->references('id')->on('users');
});

Для сводных таблиц вы также можете использовать схему миграции следующим образом:

Schema::table('category_product', function (Blueprint $table) {
    $table->unsignedBigInteger('category_id');
    $table->unsignedBigInteger('product_id');
    $table->foreign('category_id')->references('id')->on('categories');
    $table->foreign('product_id')->references('id')->on('products');
});
...