- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Не могу придумать, как решить задачу.
Пример условный. Сайт по одежде. Есть коллекции одежды. Коллекция состоит из нескольких сочетаемых товаров, например, пальто, брюки, туфли и т.д. принадлежат одной коллекции и очень хорошо сочетаются.
В БД есть таблица товаров, у каждого из них прописано название коллекции, поэтому, само собой нет проблем вывести в коллекции №435 все товары принадлежащие данной коллекции.
НО! Есть например, обувь из коллекции №878 которая отлично сочетается с одеждой из коллекции №435. Также обувь из коллекции №878 отлично подходит и для коллекции №177. Помимо этого для коллекции №435 ещё подходит пальто из коллекции №222.
Задача, в коллекциях вывести доп товары, которые подходят...
ps простой вариант который вижу, это сделать доп поля в товарах и прописывать в них названия коллекций где ещё выводить этот товар. Но на мой взгляд это не лучший вариант, возможно есть более правильный.
Спасибо заранее
Правильно - это сделать таблицу вида: "product_id, collection_id" , где будет указано какой товар в какую коллекцию попадает. Так как поля являются int foregnkey - то выборка по ним будет осуществляться очень быстро.
Правильно - это сделать таблицу вида: "product_id, collection_id" , где будет указано какой товар в какую коллекцию попадает. Так как поля являются int foregnkey - то выборка по ним будет осуществляться очень быстро.
Я правильно понимаю - можно сделать несколько полей collection_id ? так как один товар может быть дополнительно (помимо основной коллекции) выведен в 2,3,4 и т.д. коллекциях.
Таким образом, при сборке товаров для вывода в коллекции №5, будет запрос типа такого
Нет, таблица из трех полей, примеру where_is:
id - primary key
collection_id - foregnkey на id коллекции
product_id - foregnkey на id продукта
Ну и записи соответственно:
1 3 10
2 3 11
3 3 12
4 4 10
5 4 15
Выбираем все коллекции, где есть ботинки с id=10
select * from where_is where product_id = 10
Выбираем все товары, которые попадают в коллекцию с id=4
select * from where_is where collection_id = 4
Т.е. в отдельной таблице хранятся данные, что к чему принадлежит.
Stek, ок, ясно. Т.е. если в коллекции №3 нужно будет вывести товар №27 не принадлежащий безусловно ей, то придется руками дописывать в таблицу
6 3 27
В принципе есть другая мысль в сочетании с вашей.
У меня есть таблица товаров, около 20000 наименований.
Таблица с большим кол-вом полей, в том числе "безусловная" коллекция товара. Когда собирается коллекция, то проверяется поле в этой таблице
tovary where collection = 4
думаю нужно просто сделать отдельную таблицу, как показали вы, для товаров которые дополнительно нужно вывести в той или иной коллекции.
Спасибо!
Это связь "многие ко многим", можете почитать матчасть, делается, как подсказали выше, через промежуточную таблицу со связками "id элемента - id категории".