За последние 24 часа нас посетил 17671 программист и 1621 робот. Сейчас ищут 936 программистов ...

Опции(настройки) для товаров

Тема в разделе "MySQL", создана пользователем alexforce2, 10 мар 2017.

  1. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    Доброго вечера!
    Есть такая проблема:
    нужно реализовать в ИМ поиск товаров по определённым опциям, но проблема в том что, товары всех типов хранятся в одной таблице 'products', товары относятся к разным категориям, для примера: "сковородки", "кастрюли", "бокалы"), соответственно у всех товаров должен быть разный набор опций.
    Допусти для категории кастрюль должен быть поиск по "литражу", для сковородок по материалу(металл), для бокалов тоже материал(но стекло, хрусталь)
    Расширять в "ширину" таблицу 'products' для добавлений опций будет не правильно. Думаю надо привязать опции к таблице 'categories' и уже через связь с таблицей 'categories' продуктам задавать/получать нужный набор опций.
    Но вот нужную структуру выстроить в голове не получается. Посоветуйте что-нибудь дельное, пожалуйста.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    что можно посмотреть:
    mysql entity attribute value
    Sphinx MVA multi valued attributes
    MongoDB
    параметрический поиск
    elasticsearch
     
    alexforce2 нравится это.
  3. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    Опции (ID, Название, ТипЗначения)
    СписокОпцийДляКатегории (ID, ID_Категории, ID_Опции)

    СписокОпцияДляТовара (ID, ID_Товар, ID_Опции, Значение)

    Собственно всё, это минимальная структура.

    При таком подходе запросы к базе могут получаться достаточно громоздкими, но это стандартный подход.
    Я лично давно так не делаю, просто добавляю поля в таблицу товары - админка позволяет все это правильно вводить. Есть ограничение по полям, но оно трудно достижимо.. можно только запутаться :)
     
  4. alexforce2

    alexforce2 Активный пользователь

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    @denis01
    расскажи, пожалуйста, немного по подробнее, как всё это примерно будет работать.
     
  5. Drema

    Drema Новичок

    С нами с:
    20 фев 2017
    Сообщения:
    117
    Симпатии:
    30
    1. У категорий товаров есть свой набор опций (полей). Это как бы список возможных опций для товаров внутри этой категории.
    2. У конкретных товаров есть набор опций, который соответствует набору из его категории. Либо меньше (для оптимизации).
    3. При создании товара должна быть возможность в админке заполнять эти дополнительные поля.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    лучше поищи сам, в интернете должны быть статьи на эти темы
     
  7. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Таблицы:
    товары, категории, доп_параметры_категории, значения_доп_параметров_товаров.
    Всё описывается этой структурой. Чем искать: Субд или специализированными движками для поиска — решайте сами ибо субъективный вопрос.
    Удачи.
     
    alexforce2 нравится это.
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    В тред призывается Сурикат с рассказом о JSON-полях ))
     
    alexforce2 нравится это.