[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: таблица категорий товаров
maximka787
Мужики, сделал по ошибке неверную структуру и теперь проблем набрал себе. Товаров 5 тысяч

У меня таблица товаров имела вот такую структуру.
id_product, name, id_category, price.

А таблица категорий такая
id_category, name, parent_category.


Ну вот и проблема появилась. Я не учел что товар может быть не в одной категории.

Мне правильней всего создать еще связующую таблицу???
id, id_product, id_category

Так делают обычно? Если да, то запросы на вывод данных не очень сложно ведь будет делать?



Спустя 9 минут, 41 секунда (1.06.2011 - 20:51) sharki написал(а):
В таблице товаров сделай поле id_category varchar и туда вписывай категории через запятую, в потом при выборке используй IN.

Щас может что лучше предложат smile.gif

Спустя 4 минуты, 20 секунд (1.06.2011 - 20:56) maximka787 написал(а):
sharki
меня учили всегда использовать модель системы реляционную, то есть без использования serialize и тд. Все же лучше конечно через связующую таблицу. Причем я вскрывал базы данных популярных CMS там что-то типо того и было. Вот и интересно стало, а то наступить на грабли второй раз будет глупо и болезненно.

Спустя 2 минуты, 44 секунды (1.06.2011 - 20:58) sharki написал(а):
Твой вариант тоже ниче так, только тебе надо будет все 5к товаров переделывать =)

Спустя 4 минуты, 12 секунд (1.06.2011 - 21:03) maximka787 написал(а):
sharki
я подумаю над запросом. не зря я плотно изучаю их.
Думаю тут один sql в помощь, причем один запрос.

Спустя 1 минута, 58 секунд (1.06.2011 - 21:05) sharki написал(а):
Ну хотя да, я щас так подумал, что не будет труда сделать апдейт всех товаров, сначала надо сделать массовый инсерт на PHP, а потом сделать один UPDATE для обновления id_category. Не забудь сделать бекап

Спустя 1 минута, 16 секунд (1.06.2011 - 21:06) maximka787 написал(а):
sharki
Конечно) у меня база весит 2,5МБ. это месяц работы) да я даже два бэкапа сделаю)

Спустя 13 часов, 10 минут, 36 секунд (2.06.2011 - 10:16) linker написал(а):
tovar
id

category
id

tovar2category
idtovar
idcategory
SELECT 
`category`.*, `tovar`.*
FROM
`category`
LEFT JOIN
`tovar2category`
ON
`tovar2category`.`idcategory` = `category`.`id`
LEFT JOIN
`tovar`
ON
`tovar`.`id` = `tovar2category`.`idtovar`


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.