Хранение и получение данных в MySql с PHP - PullRequest
0 голосов
/ 17 апреля 2020

Я работаю над сайтом электронной коммерции, который был построен на Drupal. Я безумно стараюсь понять, как они хранят продукты и данные для каждого элемента.

На сайте тысячи продуктов. Каждый из них относится к категории или нескольким категориям.

Когда сайт был запущен, было продано очень мало видов продукции, и не было большого количества вариаций для каждого элемента.

WidgetA
Length=>[1", 2", 3"]
Diameter=[1", 2", 3"]
Finish=>[Red, Blue, Green]
Material=>[Aluminum, Steel]
Category=>Category1

Таким образом, у WidgetA будет 54 разных скуса. На каждой странице были бы все детали, перечисленные на ней, и все было в порядке.

Разработчик go in, добавил бы индивидуально skus и затем настроил страницу сведений о продукте, показывая спецификации. Затем он создаст представление списка с опциями слева, позволяющими сузить спецификации до 1 "диаметра, синий, стальной виджет A.

Это было хорошо, громоздко, но хорошо. Однако, с 3000 продуктов и 10 ГБ базы данных немного замедлились.

Теперь этот сайт переносится в многосайтовую настройку, и мы добавляем еще 10000 элементов.

Способ электронной коммерции модуль, вы должны добавить спецификации в список выбора, чтобы добавить их. Вы не можете просто импортировать новый элемент со всеми новыми спецификациями. Вы должны go и добавить спецификации (например, размер нити) к типу продукта, затем предварительно заполните все параметры для этого типа потока. Затем вы можете импортировать все продукты для этого типа и работать с представлениями.

Мне кажется, что добавление всех элементов этого путь не очень эффективен.

Что может быть лучше для хранения данных в базе данных? Я предполагал, что атрибуты для каждого элемента хранятся в столбце атрибутов как * 10 25 * объект. Затем, когда вы отображаете представление, вы берете все элементы для категории, получаете все имена атрибутов и фильтруете по всем доступным опциям для каждого атрибута. Я хотел бы сделать это с помощью js, чтобы, если вы добавите новый продукт с новым атрибутом, все это было бы сделано на лету, а не путем предварительного заполнения всех потенциальных вариантов.

Одна проблема, которую мы Я специально столкнулся с тем, что некоторые продукты хранятся в метрических c значениях, а некоторые в имперских. Как бы вы справились с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...