У меня есть две таблицы. Одна категория, а другая - Продукты. Проблема в том, что один продукт может иметь более одной категории, и я не знаю, как это сделать.Mysql-внешние ключи и массив
Я связал таблицы с внешним ключом 1: n.
Благодаря
У меня есть две таблицы. Одна категория, а другая - Продукты. Проблема в том, что один продукт может иметь более одной категории, и я не знаю, как это сделать.Mysql-внешние ключи и массив
Я связал таблицы с внешним ключом 1: n.
Благодаря
Вы бы нужен другой столик, может быть, называется ProductCategories. Каждая строка содержит внешний ключ для продукта и внешний ключ для категории. Если вы хотите найти категории продукта, запросите для всех ProductCategories с этим идентификатором продукта.
на вашем столе продукта вы можете поставить две или несколько категорий с sring как отдельное значение
LowCost | bestsale | худший | -n (другие категории)
Очень плохая идея. Вы должны держать ваши таблицы нормализованными, когда это возможно. –
sory для плохой идеи ... ее легко, когда я использую это вместе с php как массив на ячейке записи –
Вы столкнулись с проблемами производительности, когда ваши таблицы станут достаточно большими. –
Вы должны создать 3 таблицы и связанные с ними вместе, что-то как это:
Table: Items
Columns: ID, Item_ID, Item_Title, Content
Table: Tags
Columns: Tag_ID, Tag_Title
Table: Items_Tags
Columns: Item_ID, Tag_ID
iTEM_ID является внешним ключом в таблице Items.
Items_Tags - таблица корреляции.
И, например, для данного кода печатает все х теги:
SELECT * FROM items i
LEFT JOIN item_tags it ON i.item_id = it.item_id
LEFT JOIN tags t ON t.tag_id = it.tag_id
WHERE tag_title = 'x'
звучит как ваш типичный многие ко многим. Вы должны создать промежуточную таблицу для ее устранения. Google it – bassxzero
Вы создаете таблицу 'CategoryProduct' * link *. –
Вопрос был отмечен дубликатом большинством в 3-2, но два из них были «Неясны, о чем вы спрашиваете». Я не знаю, является ли это дубликат или нет, потому что вы не объяснили, что вы пытаетесь выполнить или в чем проблема. Пожалуйста, прочитайте этот совет, задав хорошие вопросы: [[ask]], [[Написание идеального вопроса] (http://tinyurl.com/stack-hints)]. Обратите особое внимание на «Золотое правило», хотя я настоятельно советую вам прочитать всю статью. –