sql >> Database teknologi >  >> RDS >> Mysql

OpenCart:Sådan udfyldes oc_category_path nøjagtigt

Hvis en kategori i dit oc-lager er en rodkategori, får den en post i stitabellen som sådan "category_id,category_id,0". Hvis den kategori har et underordnet, får den to poster i tabellen, nemlig :-"category_id ,category_id,1" samt "category_id,parent_id,0".

Hvis det barn har sit eget barn, vil det nye barn have tre poster som sådan:-
"category_id,category_id,2"
"category_id,parent_id,1"
"category_id,parents overordnet kategori_id,0"

For at illustrere dette, antag, at en kategori har et kategori_id på "14". Det er det første barn i en kategori med et kategori_id på "11". Den kategori, med kategori_id af "11" er barnet i en kategori med kategorien id af "1". (1>11>14 som vist i administrationspanelet, undtagen med navnet i stedet for kategori_id)

Ovenstående vil have 3 poster som sådan:
"14","14","2"
"14","11","1"
"14","1" "0"

Så rodkategorien til den vil få 0, den næste får 1, og den næste 2, og så videre, alt afhængig af hvor mange kategoriniveauer der er nede.

Jeg håber, det forklarer tingene godt nok.

Med hensyn til at udfylde den, er den enkleste metode, men ikke en komplet metode, bare at oprette tabellen med "category_id,category_id,0". Dette får dem til at dukke op i administrationspanelet. Hvis du derefter klikker på "reparer" vil det generere denne tabel korrekt.

Alternativt ville du skulle gå gennem din kategoritabel, oprette et array med dets parent_id, slå det parent_id op for dets parent_id og tilføje det til arrayet, og så videre. Når arrayet er færdigt, dvs. ikke flere forældre, vil det være en simpel opgave at tilføje dem til tabellen med det korrekte "niveau".

FYI, der er en anden tabel, der også skal udfyldes, kategori_til_butik, som meget simpelt er "kategori_id, butik_id". Uden denne tabel vil du ikke se dine kategorier i din butik.




  1. Sådan opdateres fremmednøgleværdi i mysql-database

  2. Installer webserver i Windows XP med Apache2, PHP5 og MySQL4 – del 4

  3. Django prefetch_related med limit

  4. Flere indekser vs Multi-kolonne indekser