Як створити таблицю продуктів, в якій кожен продукт знаходиться в декількох категоріях у MySQL?

У мене 2 таблиці MySQL:

categories (id int, name varchar(1000))

І

products (id int, name varchar(1000))

Кожен продукт може бути декількома категоріями. Я маю намір додати стовпець "category_ids" в таблицю "products" з категоріями Ids, розділеними точкою з комою, але цей метод незручний для запиту MySQL.

Будь-які інші можливі методи?

0

4 Відповіді

Створіть таблицю, яка відповідає продуктам із категоріями:

product_id category_id
1          1
1          2
2          5
3          5
3          2

і т. д. Сподіваюся, це допоможе

5
додано

скласти третю таблицю, яка має посилання на обидва таблиці, як показано нижче зображення

enter image description here

2
додано
О добре, як я можу забути цей метод відображення між 2 таблицями, tks для нагадування мені
додано Автор jondinham, джерело

Додати таблицю з'єднань, що зв'язує два:

**product_categories**
productid (FK ref product.id)
categoryid (FK ref categories)
2
додано

Це, здається, багато для багатьох відносин ....

Для того, щоб відобразити багато-багато відносин, вам буде потрібно інший стіл

categories_products(id, category_id, product_id) 

тому один продукт може потрапити під багатьма категоріями, і однаковою категорією може бути багато продуктів.

Таблиця продуктів матиме один-багато відносин із таблицею categories_products Таблиці категорій також матимуть один-багато поряд з таблицею categories_products

це стандартний спосіб реалізації багатьох для багатьох відносин

1
додано
кластеризований складений первинний ключ (category_id, product_id) буде краще забезпечувати цілісність і бути набагато більш продуктивним - відточити безглуздий сурогатний ПК і зчитати на типи індексів MySQL nosql допоможіть мені вибрати правильний варіант на "> stackoverflow.com/questions/4419499/ …
додано Автор Jon Black, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php

IT KPI - Databases
IT KPI - Databases
162 учасників