Установка Текдок оптимизированого — различия между версиями

Материал из MstarProject Manual
Перейти к: навигация, поиск
 
(не показано 13 промежуточных версии 2 участников)
Строка 16: Строка 16:
 
Язык указывается в переменной '''lng_id''', значение 16 соответствует русскому языку, 4 - English.
 
Язык указывается в переменной '''lng_id''', значение 16 соответствует русскому языку, 4 - English.
  
Страна для выбора названия моделей, модификаций и так далее указывается в '''cou_id''', значение 188 соответствует России, а 225 - Украине.
+
Страна для выбора названия моделей, модификаций и так далее указывается в '''cou_id''', значение 187 соответствует России, а 225 - Украине, 250 - Европа, 251 - все
  
 
На данный момент мы создавали только одну базу при этом в ней не были учтены страны. Поэтому некоторые заказчики жаловались на неправильные названия моделей и модификаций. В оптимизированном текдоке база создается только для одной страны, поэтому если сайт будет использовать модели определенной страны, то надо создавать отдельную базу с данными по этой стране, например opti_1303_ua.
 
На данный момент мы создавали только одну базу при этом в ней не были учтены страны. Поэтому некоторые заказчики жаловались на неправильные названия моделей и модификаций. В оптимизированном текдоке база создается только для одной страны, поэтому если сайт будет использовать модели определенной страны, то надо создавать отдельную базу с данными по этой стране, например opti_1303_ua.
Строка 26: Строка 26:
  
 
Добавление индексов для кроссов
 
Добавление индексов для кроссов
<pre>ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `Search` , `Kind` ) ;
+
<pre>
ALTER TABLE `cat_alt_crosses_tmp` ADD INDEX ( `ID_art` ) ;</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