XML классификация продуктов
Классификатор продуктов - дерево, в базе данных Akvedukts - это одна одна таблица (приблизительная структура: NODE_ID integer, NODE_NAME varchar(100), PARENT_NODE_ID integer). На данный момент в каталоге используется вложенность 2,3,4 уровня. Классификация продуктов это статический документ, который обнавляется каждые 3 часа.
www.akvedukts.lv/xml/akvedukts.xml
<xml enoding="UTF-8">
<nodes>
<node id="$ID дерева$ " parent_id="$ID родителя$" level="$уровень вложенности$" last_level="$метка-последний узел в ветке$">
<tree_name><![CDATA[$Название каталога lat$]]> </tree_name>
<tree_name_rus><![CDATA[$Название каталога rus$]]> </tree_name_rus>
</node>
.
.
.
</nodes>
Где:
$ID дерева$ - Уникальный идентификатор узла дерева в базе данных Akvedukts. Тип integer.
$ID родителя$ - Ссылка на родительский узел. Тип integer.
$уровень вложенности$ - уровень вложенности узла. Тип integer.
$метка-последний узел в ветке$ - метка если равна "y", то узел неимеет наследников (последний в ветке). Тип char(1).
$Название каталога lat$ - Название узла дерева (каталога) по латышски. Тип varchar(200).
$Название каталога rus$ - Название узла дерева (каталога) по русски. Тип varchar(200).
При просмотре в броузере XML документ отображается, как дерево - родительские узлы содержат наследников.
Пример:
Машины стиральные
-------------Вертикальные
-----------------------Класс А
-----------------------Класс В
Будет выглядеть приблизительно :
<nodes>
<node id="1 " parent_id="" level="1" last_level="n">
<tree_name><![CDATA[Машины стиральные]]></tree_name>
<node id="2 " parent_id="1" level="2" last_level="n">
<tree_name><![CDATA[Вертикальные]]></tree_name>
<node id="3 " parent_id="2" level="3" last_level="y">
<tree_name><![CDATA[Класс А]]></tree_name>
</node>
<node id="4" parent_id="2" level="3" last_level="y">
<tree_name><![CDATA[Класс B]]></tree_name>
</node>
</node>
</node>
</nodes>