Исправить структуру таблиц в базе данных

Бюджет: По договоренности

Добрый день!

Необходимо внести исправления:

Webasyst Support Team
1 июля 2020 16:20

У вас на данный момент в базе данных испорчена структура таблиц в ней, из-за этого появились подобные проблемы со значениями характеристик. К сожалению, нет возможности восстановить работу силами наших специалистов, можем только посоветовать обратиться к сторонним разработчикам за помощью, например, к нашим партнерам: https://experts.webasyst.ru/directory/programming/ . Мы же со своей стороны можем оставить описание и вариант решения проблемы:

У вас в таблице shop_feature_values_dimension нет свойства AUTO_INCREMENT, и поэтому повторяются значения в поле id, которое должно использоваться в качестве первичного ключа. На значения в этом поле ссылаются записи в таблице shop_product_features из поля feature_value_id. Получается, что одному значению в shop_product_features.feature_value_id соответствует несколько записей в shop_feature_values_dimension.id. Это значит, что магазин выбирает случайным образом только одну из этих записей, чтобы показать на веб-странице или ещё как-то использовать в своём коде, а остальные такие записи никак не используются.

Чтобы всё работало правильно, надо хотя бы удалить лишние записи из shop_feature_values_dimension с повторяющимися id. Потом можно будет включить для поля id свойство AUTO_INCREMENT и добавить индексы. Но тут надо будет правильно определить, какие лишние записи нужно удалять.

Самый надёжный способ будет такой:

  1. Полностью очистить таблицу shop_feature_values_dimension.
  2. Удалить связанные с нею записи в shop_product_features.
  3. Исправить структуру таблицы shop_feature_values_dimension: добавить AUTO_INCREMENT и индексы.
  4. Заново заполнить её значениями вручную или импортом.

Стоит проверить и остальные таблицы, они тоже могут быть с поврежденной структурой.

4 ответа

Откликнуться на заказ

Отклики на заказы могут добавлять только зарегистрированные эксперты и разработчики Webasyst. Стать экспертом.

Чтобы добавить комментарий, зарегистрируйтесь или войдите