Установка Текдок оптимизированого — различия между версиями
(не показаны 22 промежуточные версии 3 участников) | |||
Строка 6: | Строка 6: | ||
catalog_insert2.sql | catalog_insert2.sql | ||
catalog_insert3.sql</pre> | catalog_insert3.sql</pre> | ||
+ | Эти файлы находятся в архиве: [[File:catalog_opti.zip]] | ||
− | Перед запуском скриптов укажите правильно исходную базу оригинального Текдока, путем замены например '''_1302''' на '''_1303''' | + | В принципе можно все объединить в один файл. |
+ | |||
+ | Перед запуском скриптов укажите правильно исходную базу оригинального Текдока, путем замены например '''_1302''' на '''_1303''' во всех файлах. | ||
В файле catalog_create.sql создаются таблицы и формируются данные переводов использую язык и страну, поэтому проконтролируйте эти значения. | В файле catalog_create.sql создаются таблицы и формируются данные переводов использую язык и страну, поэтому проконтролируйте эти значения. | ||
− | Язык указывается в переменной '''lng_id''', значение 16 соответствует русскому языку. | + | Язык указывается в переменной '''lng_id''', значение 16 соответствует русскому языку, 4 - English. |
+ | |||
+ | Страна для выбора названия моделей, модификаций и так далее указывается в '''cou_id''', значение 187 соответствует России, а 225 - Украине, 250 - Европа, 251 - все | ||
+ | |||
+ | На данный момент мы создавали только одну базу при этом в ней не были учтены страны. Поэтому некоторые заказчики жаловались на неправильные названия моделей и модификаций. В оптимизированном текдоке база создается только для одной страны, поэтому если сайт будет использовать модели определенной страны, то надо создавать отдельную базу с данными по этой стране, например opti_1303_ua. | ||
+ | |||
+ | Аналогичная ситуация с языком, если сайт будет мультиязычным, то придется создавать отдельные базы по разным языкам и как-то учитывать это в подключении оптимизированного Текдока, например путем изменения константы '''DB_OCAT''' в зависимости от языка сайта. Или оставлять подключение к оригинальному Текдоку вместо оптимизированого(?) | ||
+ | |||
+ | |||
+ | '''Добавочные запросы:''' | ||
+ | |||
+ | Добавление индексов для кроссов | ||
+ | <pre> | ||
+ | |||
+ | |||
+ | CREATE TABLE IF NOT EXISTS `cat_alt_link_str_art` ( | ||
+ | `id_tree` int(11) NOT NULL, | ||
+ | `id_art` int(11) NOT NULL, | ||
+ | `code` varchar(50) NOT NULL, | ||
+ | `id_sup_src` int(11) NOT NULL, | ||
+ | PRIMARY KEY (`id_tree`,`id_art`) | ||
+ | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; | ||
+ | |||
+ | |||
+ | ALTER TABLE `cat_alt_tree` ADD INDEX `ID_src` ( `ID_src` ) ; | ||
+ | ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_grp` ( `ID_grp` ) ; | ||
+ | ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_art_2` ( `ID_art` ) ; | ||
+ | ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_art` ( `ID_art`,`ID_grp` ) ; | ||
+ | ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_typ` (`ID_typ`,`ID_art`,`ID_sup`,`ID_grp`) ; | ||
+ | |||
+ | ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `Search` , `Kind` ) ; | ||
+ | ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `ID_art` ) ; | ||
+ | ALTER TABLE `cat_alt_link_str_art` ADD INDEX `id_tree` ( `id_tree` ) ; | ||
+ | ALTER TABLE `cat_alt_link_typ_inf_tmp` ADD INDEX (`ID_grp`) ; | ||
+ | |||
+ | INSERT ignore INTO `cat_alt_link_str_art`(`id_tree`, `id_art`, `code`, `id_sup_src`) | ||
+ | SELECT lsg.ID_tree id_tree,lai.ID_art id_art,a.Search code,s.ID_src id_sup_src | ||
+ | FROM cat_alt_link_str_grp lsg | ||
+ | inner join cat_alt_link_art_inf lai on lsg.ID_grp=lai.ID_grp | ||
+ | inner join cat_alt_articles a on a.ID_art=lai.ID_art | ||
+ | inner join cat_alt_suppliers s on s.ID_sup=a.ID_sup; | ||
+ | |||
+ | |||
+ | CREATE TABLE IF NOT EXISTS `cat_alt_original` ( | ||
+ | `id_oe` int(11) NOT NULL AUTO_INCREMENT, | ||
+ | `id_art` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT 'Идентификатор', | ||
+ | `oe_code` varchar(105) DEFAULT NULL, | ||
+ | `code` varchar(50) DEFAULT NULL COMMENT 'Ð”Ð»Ñ Ð¿Ð¾Ð¸Ñка', | ||
+ | `oe_brand` smallint(6) unsigned NOT NULL COMMENT 'Идентификатор иÑточника', | ||
+ | `brand` smallint(6) unsigned NOT NULL COMMENT 'Идентификатор иÑточника', | ||
+ | PRIMARY KEY (`id_oe`), | ||
+ | KEY `oe_code` (`oe_code`), | ||
+ | KEY `code` (`code`), | ||
+ | KEY `oe_brand` (`oe_brand`), | ||
+ | KEY `brand` (`brand`), | ||
+ | KEY `id_art` (`id_art`) | ||
+ | ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; | ||
+ | |||
+ | insert into opti_1603.cat_alt_original (id_art,oe_code,code,oe_brand,brand) | ||
+ | select a.id_art | ||
+ | , c.Search as oe_code, | ||
+ | a.Search as code | ||
+ | ,s.id_src as oe_brand | ||
+ | ,s2.id_src as brand | ||
+ | from opti_1603.cat_alt_crosses_tmp as c | ||
+ | INNER JOIN opti_1603.cat_alt_articles a on a.ID_art=c.ID_art | ||
+ | INNER JOIN opti_1603.cat_alt_suppliers as s on c.Brand=s.Name | ||
+ | INNER JOIN opti_1603.cat_alt_suppliers as s2 on a.id_sup=s2.id_sup | ||
+ | where 1=1 AND c.Kind=3 | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | '''Обновление лого брендов ''' | ||
+ | |||
+ | Выполнять на готовой таблице cat_alt_suppliers | ||
+ | <pre> | ||
+ | UPDATE cat_alt_suppliers SET Logo = concat( 'logos/', ( | ||
+ | SELECT SLO_ID | ||
+ | FROM tecdoc_1603.`tof__supplier_logos` l | ||
+ | WHERE cat_alt_suppliers.ID_SRC = l.SLO_SUP_ID | ||
+ | LIMIT 1 | ||
+ | ), '.png' ) | ||
+ | </pre> | ||
− | + | '''Обновление списка моделей и брендов''' | |
− | + | На данный момент это нужно делать после перехода на новый текдок в Empanel - Регламентные работы под пользователем: admin_mstar |
Текущая версия на 13:31, 5 октября 2016
Оптимизированный Текдок создается из базы оригинального Текдок. Картинки и PDF используются из оригинального Текдок и не изменяется расположение этих файлов.
Для формирования базы используются запросы из файлов:
catalog_create.sql catalog_insert1.sql catalog_insert2.sql catalog_insert3.sql
Эти файлы находятся в архиве: Файл:Catalog opti.zip
В принципе можно все объединить в один файл.
Перед запуском скриптов укажите правильно исходную базу оригинального Текдока, путем замены например _1302 на _1303 во всех файлах.
В файле catalog_create.sql создаются таблицы и формируются данные переводов использую язык и страну, поэтому проконтролируйте эти значения.
Язык указывается в переменной lng_id, значение 16 соответствует русскому языку, 4 - English.
Страна для выбора названия моделей, модификаций и так далее указывается в cou_id, значение 187 соответствует России, а 225 - Украине, 250 - Европа, 251 - все
На данный момент мы создавали только одну базу при этом в ней не были учтены страны. Поэтому некоторые заказчики жаловались на неправильные названия моделей и модификаций. В оптимизированном текдоке база создается только для одной страны, поэтому если сайт будет использовать модели определенной страны, то надо создавать отдельную базу с данными по этой стране, например opti_1303_ua.
Аналогичная ситуация с языком, если сайт будет мультиязычным, то придется создавать отдельные базы по разным языкам и как-то учитывать это в подключении оптимизированного Текдока, например путем изменения константы DB_OCAT в зависимости от языка сайта. Или оставлять подключение к оригинальному Текдоку вместо оптимизированого(?)
Добавочные запросы:
Добавление индексов для кроссов
CREATE TABLE IF NOT EXISTS `cat_alt_link_str_art` ( `id_tree` int(11) NOT NULL, `id_art` int(11) NOT NULL, `code` varchar(50) NOT NULL, `id_sup_src` int(11) NOT NULL, PRIMARY KEY (`id_tree`,`id_art`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ALTER TABLE `cat_alt_tree` ADD INDEX `ID_src` ( `ID_src` ) ; ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_grp` ( `ID_grp` ) ; ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_art_2` ( `ID_art` ) ; ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_art` ( `ID_art`,`ID_grp` ) ; ALTER TABLE `cat_alt_link_typ_art` ADD INDEX `ID_typ` (`ID_typ`,`ID_art`,`ID_sup`,`ID_grp`) ; ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `Search` , `Kind` ) ; ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `ID_art` ) ; ALTER TABLE `cat_alt_link_str_art` ADD INDEX `id_tree` ( `id_tree` ) ; ALTER TABLE `cat_alt_link_typ_inf_tmp` ADD INDEX (`ID_grp`) ; INSERT ignore INTO `cat_alt_link_str_art`(`id_tree`, `id_art`, `code`, `id_sup_src`) SELECT lsg.ID_tree id_tree,lai.ID_art id_art,a.Search code,s.ID_src id_sup_src FROM cat_alt_link_str_grp lsg inner join cat_alt_link_art_inf lai on lsg.ID_grp=lai.ID_grp inner join cat_alt_articles a on a.ID_art=lai.ID_art inner join cat_alt_suppliers s on s.ID_sup=a.ID_sup; CREATE TABLE IF NOT EXISTS `cat_alt_original` ( `id_oe` int(11) NOT NULL AUTO_INCREMENT, `id_art` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT 'Идентификатор', `oe_code` varchar(105) DEFAULT NULL, `code` varchar(50) DEFAULT NULL COMMENT 'Ð”Ð»Ñ Ð¿Ð¾Ð¸Ñка', `oe_brand` smallint(6) unsigned NOT NULL COMMENT 'Идентификатор иÑточника', `brand` smallint(6) unsigned NOT NULL COMMENT 'Идентификатор иÑточника', PRIMARY KEY (`id_oe`), KEY `oe_code` (`oe_code`), KEY `code` (`code`), KEY `oe_brand` (`oe_brand`), KEY `brand` (`brand`), KEY `id_art` (`id_art`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; insert into opti_1603.cat_alt_original (id_art,oe_code,code,oe_brand,brand) select a.id_art , c.Search as oe_code, a.Search as code ,s.id_src as oe_brand ,s2.id_src as brand from opti_1603.cat_alt_crosses_tmp as c INNER JOIN opti_1603.cat_alt_articles a on a.ID_art=c.ID_art INNER JOIN opti_1603.cat_alt_suppliers as s on c.Brand=s.Name INNER JOIN opti_1603.cat_alt_suppliers as s2 on a.id_sup=s2.id_sup where 1=1 AND c.Kind=3
Обновление лого брендов
Выполнять на готовой таблице cat_alt_suppliers
UPDATE cat_alt_suppliers SET Logo = concat( 'logos/', ( SELECT SLO_ID FROM tecdoc_1603.`tof__supplier_logos` l WHERE cat_alt_suppliers.ID_SRC = l.SLO_SUP_ID LIMIT 1 ), '.png' )
Обновление списка моделей и брендов
На данный момент это нужно делать после перехода на новый текдок в Empanel - Регламентные работы под пользователем: admin_mstar