@RoossoCocosso
начинающий

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

Суть состоит в том, что мне надо спроектировать базу данных для одного оптового магазина одежды. Некоторые категории товаров (например, футболки) содержат несколько признаков (например, размер и цвет). База данных должна учитывать количество футболок определенного размера и определенного цвета (например, белые футболки размера S - 54 штуки, светло-желтые футболки размера M - 74 шт). Основная сложность в том, что сочетаний размеров и цветов может быть огромное количество, из-за большого количества цветов и размеров, и неплохо бы было вынести это в отдельную таблицу. Даже не представляю как это нужно реализовать, т.к. опыта в проектировании баз данных не много. Если у кого-то есть простое и элегантное решение, которое я просто не знаю из-за отсутствия опыта, буду очень благодарен.
P.S. еще раз напишу: опыта очень мало, так что не судите строго.
  • Вопрос задан
  • 832 просмотра
Решения вопроса 2
viktorvsk
@viktorvsk
Простое архитектурное решение - EAV в том числе и для задачи характеристик (фильтров, свойств) в интернет-магазине. При том, еще и довольно неплохо масштабируется. Так сказать, это облегченный вариант поисковых движков (Sphinx, Elasticsearch, Solr...) для начала. И часто его может хватить с головой.
Ответ написан
@asd111
для примера:

Вариант 1:

Таблица:
id | id товара | свойство | значение

пример для 3 товаров:
1 футболка красная L 100$ 1 шт
2 футболка синяя XL 200$ 2 шт
3 кофта белая XXL 300$ 3 шт

пример записей в таблице :

1 | 1 | тип товара | футболка
2 | 1 | размер | S
3 | 1 | цвет | красный
4 | 1 | цена | 100
5 | 1 | количество | 1
6 | 2 | тип товара | футболка
7 | 2 | размер | L
8 | 2 | цвет | синий
9 | 2 | цена | 200
10 | 2 | количество | 2
11 | 3 | тип товара | кофта
12 | 3 | размер | M
13 | 3 | цвет | белый
14 | 3 | цена | 300
15 | 3 | количество | 3

Вариант 2:

Таблица 1:
id | id товара | свойство | значение
Таблица 2:
id | id товара | цена | количество

Пример таблицы 1 :

1 | 1 | тип товара | футболка
2 | 1 | размер | S
3 | 1 | цвет | красный
4 | 2 | тип товара | футболка
5 | 2 | размер | L
6 | 2 | цвет | синий
7 | 3 | тип товара | кофта
8 | 3 | размер | M
9 | 3 | цвет | белый

Пример таблицы 2 :

1 | 1 | 100 | 1
2 | 2 | 200 | 2
3 | 3 | 300 | 3

если будет тормозить то нужен будет шардинг
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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