Часто ко мне приходят проекты по переносу данных из любых движков или самописов на Opencart. Это я люблю делать и с удовольствием выполняю. Но в этот раз что-то пошло не так.. Надо было перенести данные из UMI CMS. Не смотрев в базу, структуру, мы договорились о работе о чем очень жалею. Почему? Об это далее.
UMI CMS и структура базы данных
Как мы знаем во всех нормальных CMS к которым и относится Opencart структура базы очень простая и понятная. Все по своим таблицам, везде есть id и этот id можно узнать прямо в админке в исходном коде - все как надо. Но в ЮМИ у нас нет дифференциации на товары, категории, заказы. Все там в одну кучу скинуто в пару таблиц с миллионные записями.. Ох..
При этом если просто зайти через phpmyadmin в таблицу мы увидим что-то страшное
Но если полистать то найдем в более чем 4 миллионной таблице товар, поле из заказа и атрибут находящиеся в одной таблице в соседних строках.
А если еще зайти на 16483 страницу то будет например такое
То есть как видим все в куче и в непонятной форме/структуре.
Кстати там разработчики постебались знатно. Пол базы занимают поля для 'подготовки экспорта' или импорта. Вроде в админке экспорт, а в базе импорт. Что это вообще такое? Зачем все данные сайта пихать в кучу в подготовленные данные для выгрузки в отдельные таблицы??? Такого бреда я не видел еще. ЮМИ побил все рекорды по мазохизму.
А еще разработчикам показалось что в базе должно быть больше таблиц и они решили сделать мега супер статистику и выделить под нее пол базы, если не больше. Зачем?
Из 96 таблиц в базе 'статистика' занимает всего 35 таблиц, а я тут сказал уже что половину, не прав. :-D Кстати, а разработчики знают что есть например такое как google analitics в котором все отлично и он не увеличивает вашу базу в гектары? Хм.. видимо нет.
На счет базы в гектары ненужных данные я не шучу, вот миллионные таблицы только для статистики посещений
А еще давайте зайдем в базу UMI cms3_objects и мы видим опять же эти наборы несвязанных данных в куче с другими
Ну и как тут, извините, не стошнит?
Про админку вообще молчу, это что-то страшное и непонятное. Например все связи выставлены через непонятный через связей id. То есть нет прямой связи. Есть поле которое подвязывается под объект (а это может быть все что угодно) и этот объект связан с другим объектом как-то не ясно как.
Я эти данные еле перенес и то не все. Часто я связи вообще не мог найти. Что употребляют разработчики данного движка не ясно. Но очень не рекомендую связываться с UMI вообще ни за какие деньги. Вы валерьянки больше скушаете))