Как правильно реализовать характеристики товара

Тема в разделе "Базы данных", создана пользователем NOIP, 25 июл 2019.

Модераторы: latteo
  1. NOIP

    NOIP

    Регистр.:
    17 фев 2008
    Сообщения:
    280
    Симпатии:
    57
    Здравствуйте, есть список товаров с разных категорий, хочу добавить характеристики к каждому товару что бы в будущем можно было пользоваться фильтрами в категории, я так понимаю мне нужно создать категории фильтров? то есть, есть таблица с товарами, #_catalog и категориями #_catalog_category мне нужно добавить #_catalog_specifications и #_catalog_specifications_item.

    В результате я получу каталог товаров из таблицы #_catalog_category и будут выводить товары по ID товара, что бы привязать спецификации мне нужно в #_catalog_specifications и от туда ID спецификаций будет записываться в #_catalog_specifications_item и уже из #_catalog_specifications_item буду записи #_catalog_specifications_item будут привязаны к #_catalog_specifications в то время когда #_catalog_specifications будет привязан к #_catalog_category. для каждого товара будет в карту #_catalog_specifications_item буду писать ID категории и ID товара. Поля у всех категорий разные где то схожие где то в корне разные. Может кто сталкивался с подобным? научите пожалуйста как правильно реализовать в базе данных хранение и зависимости данных. Спасибо.

    Суть вопроса, правильно ли я мыслю? и если нет, подскажите как надо.


    #_catalog
    id, title, catid

    #_catalog_category
    id, title

    #_catalog_specifications
    id, catid

    #_catalog_specifications_item
    id, title, catss

    #_catalog_specifications_item_feature
    id, uid, content, idcard

    catss ID каталога спецификаций
    idcard ID карты товара
    catid ID категории
    uid ID из списка возможных характеристики - catalog_specifications_item
    content сама характеристика

    Получается, есть категория, миксеры. ID категории 155, создавая запись в catalog_specifications я унаследую ID категории, 155 в catid, далее завожу характеристику в catalog_specifications_item здесь я унаследую ID из catalog_specifications и ID текущей записи пусть будет 77, после я уже могу привязывать характеристики в catalog_specifications_item_feature к ID 77, цвет, мощность, дистанция и тд.
    Получается все характеристики которые будут под 77 я без проблем смогу сортировать товары по характеристикам?

    Вот примерно так я себе это представляю.
     
    Последнее редактирование: 25 июл 2019
  2. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    219
    Симпатии:
    85
    Мне нраится в как реализованы характеристики товара в SimplaCMS, это сделано так

    1. Таблица продуктов products
    id, category_id, product

    2. Таблица характеристик features
    id, name, in_filter

    3. Таблица связей
    product_id, feature_id, value

    При запросе категории, вытягиваются все товары, все feature_id и value для создания массива вариантов свойств, а из features их названия.
     
  3. NOIP

    NOIP

    Регистр.:
    17 фев 2008
    Сообщения:
    280
    Симпатии:
    57
    А цену лучше хранить тоже в характеристике? или в таблице продукта?
     
  4. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    219
    Симпатии:
    85
    Цену лучше отдельно, характеристики по сути опциональны - а цена желательна всегда
    Если у товара нету вариантов, то в таблице с товарами, если есть то в таблице с вариантами.
     
  5. NOIP

    NOIP

    Регистр.:
    17 фев 2008
    Сообщения:
    280
    Симпатии:
    57
    А за что отвечает поле in_filter?
     
  6. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    219
    Симпатии:
    85
    Включено в фильтре или нет, вдруг не все характеристики нужно в фильтр выводить.
     
  7. NOIP

    NOIP

    Регистр.:
    17 фев 2008
    Сообщения:
    280
    Симпатии:
    57
    Подскажите пожалуйста, как выглядит sql запрос на работу карты товара с фильтрами? Что с чем соединять что бы получить в оконце примеру товары с определенной характеристикой.
     
  8. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    219
    Симпатии:
    85
    А как насчет установить Симплу (можно и Окай, но Симла проще) и сразу в ней смотреть все что нужно, потому что наверняка возникнут еще вопросы. Где поставить вывод запросов - я скажу :).
     
  9. NOIP

    NOIP

    Регистр.:
    17 фев 2008
    Сообщения:
    280
    Симпатии:
    57
    Да я думал может быть у вас уже есть установленная, и не затруднит скинуть распечатку запроса.
     
  10. Minor

    Minor

    Регистр.:
    16 авг 2012
    Сообщения:
    219
    Симпатии:
    85
    Да есть, только там в все товары без характеристик. Может на выходных смогу - но лучше поставьте, наверняка это не последний вопрос по организации товаров.