@survivor2005

Как правильно спроектировать базу данных интернет магазина?

Доброго дня, пытаюсь написать интернет магазин, с кодом проблем нет, но вот с БД я дилетант. В общем все стандартно, имееются категории товаров и продукты. Сделал таблицу
категорий (id, имя_категории), далее таблица
товаров (id, имя_товара, цена, айди_категории,....).
Были проблемы со свойствами товаров.
Мне подсказали, что надо создать таблицу specification, и прописать в ней
атрибуты (id, имя_характеристики, сама_характеристики, айди_товара).
Мне не нравится данный подход тем, что я не могу четко ограничить какие и сколько полей для характеристик будет допустим у телефона или ноутбука.
Я так понимаю ограничить это я могу только сделав форму под каждую категорию товаров для внесения данных в бд?
Это мне показалось не очень хорошо, так как в идеале должна быть одна форма которая формируется исходя из данных в бд, то бишь делается запрос на то сколько полей характеристик имеет тот же ноутбук и в цикле отрисовать столько же инпутов за исключением айди и даты к примеру. В данном случае это не сделать. Потом сказали, что надо делать группы для характеристик, типа группа laptops, smartphones и т д. Мне показалось интересным, но как это реализовать не знаю. В общем подскажите как в действительности делаются такие вещи? Спасибо. Очень прошу не ругаться на меня...
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
slashinin
@slashinin
Задачи для PHP https://justcoding.ru
Создаете две таблицы: properties (свойства) и property_values (значения свойств)

Структура у них следующая:
properties
*id
*name
*category_id (опционально, если надо привязать свойства к категориям)

property_values
*id
*property_id (id свойства)
*item_id (id товара)
*value

Не забывайте про внешние ключи и индексы для обеспечения целостности данных и быстрой выборки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы