sql >> Databáze >  >> RDS >> Mysql

OpenCart:Jak přesně vyplnit oc_category_path

Pokud je kategorie ve vašem obchodě oc kořenovou kategorií, získá záznam v tabulce cest jako „id_kategorie,id_kategorie,0“. Pokud má tato kategorie potomka, získá v tabulce dvě položky, konkrétně :-„id_kategorie ,category_id,1“ a také „category_id,parent_id,0“.

Pokud má toto dítě své vlastní dítě, bude mít toto nové dítě tři položky jako takové:-
"category_id,category_id,2"
"category_id,parent_id,1"
"category_id,parents nadřazená kategorie_id,0"

Pro ilustraci předpokládejme, že kategorie má category_id „14“. Je to první podřízený prvek kategorie s category_id „11“. Tato kategorie s category_id „11“ je podřízeným prvkem kategorie s kategorií id "1". (1>11>14, jak je uvedeno na panelu administrátora, s výjimkou názvu namísto category_id)

Výše uvedené bude mít 3 položky jako takové:
"14","14","2"
"14","11","1"
"14","1" "0"

Kořenová kategorie tedy dostane 0, další dostane 1 a další 2 a tak dále, vše v závislosti na tom, o kolik úrovní kategorie je níže.

Doufám, že to vysvětluje věci dostatečně dobře.

Pokud jde o naplnění, nejjednodušší metodou, ale ne úplnou metodou, je pouze vytvořit tabulku s "id_kategorie,id_kategorie,0". Tím se zobrazí na panelu administrátora. Pokud poté kliknete na "opravit", vygeneruje se tato tabulka správně.

Případně byste museli projít tabulkou kategorií, vytvořit pole s jeho parent_id, vyhledat toto parent_id pro jeho parent_id a přidat ho do pole a tak dále. Až bude pole kompletní, tj. žádné další rodiče, bude jednoduchým úkolem přidat je do tabulky se správnou „úrovní“.

Pro informaci, existuje další tabulka, kterou je také potřeba vyplnit, category_to_store, což je velmi jednoduše „id_kategorie,id_obchodu“. Bez této tabulky neuvidíte své kategorie ve vašem obchodě.




  1. Problémy s vytvářením tabulky RODBC sqlSave

  2. Výběr nejběžnější hodnoty ze vztahu - příkaz SQL

  3. Existuje způsob, jak nepoužívat hranaté závorky v SQL Server?

  4. Složený PRIMARY KEY vynucuje omezení NOT NULL na příslušné sloupce