Задать вопрос
@semki096

Как использовать внешние ключи для связки таблиц order и order_items?

Не могу понять как работают внешние ключи и как организовать такой функционал. Вывожу из базы данных в цикле все заказы пользователя, обращаясь к таблице orders. Мне надо рядом с каждім заказом вівести названия товаров - из таблицы order_items. Как это делается, помогут ли мне внешние ключи или они несут другой смысл?
  • Вопрос задан
  • 285 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
@kvalood
Можно через ключи, сделать таблицу order_product где хнатить id заказа, и id товара. (у заказов может быть несколько товаров, будет несколько записей).

SELECT o.order_id, и другие колонки, op.product_id, op.order_id, p.id, p.name  
FROM orders as o
LEFT JOIN order_product as op ON o.order_id = op.order_id
LEFT JOIN products as p ON op.product_id = p.id


Конечно это набросок, но думаю разберетесь :)
Ответ написан
dmitriylanets
@dmitriylanets
веб-разработчик
чет вообще не понял причем тут внешние ключи и 3-я таблица order_product, которую вы указали как решение.
1. Мне надо рядом с каждім заказом вівести названия товаров - из таблицы order_items
- если одним запросом
SELECT
  *, GROUP_CONCAT(order_items.`name`) AS `names`
FROM order_items
  INNER JOIN orders
    ON order_items.order_id = orders.id

2. Третья таблица order_product с полями id заказа, и id товара - обычно делают для связи многие ко многим у вас что товар может иметь принадлежность к нескольким заказам?
3. Внешние ключи как правило используют для целостности данных, например вы не сможете удалить заказ если у него есть товары, хотя можно использовать каскадное удаление
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽