Was wurde aus (dem Inhalt) der MySQL-Tabelle 'categories_index'?

Thema wurde von MrFab16.4, 21. Oktober 2019 erstellt.

  1. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    Hallo zusammen,

    bis vor einige Wochen/Monate bzw. MasterUpdates wurde die MySQL-Tabelle 'categories_index' beim Anlegen eines neuen Artikels regelmäßig vom Shopsystem "gepflegt" bzw. ein neuer Satz insertet. Siehe den 1. Screenhot.

    Die Tabelle MySQL-Tabelle 'categories_index' enthielt in der Spalte '(Link nur für registrierte Nutzer sichtbar.)' die numerische Zuordnung in welcher Ober- bzw. Unterkategorie sich ein Artikel befand.

    SELECT * FROM categories_index ORDER BY `products_id` ASC
    Ergebnis meines Shops für ältere Artikel:

    [​IMG]



    SELECT * FROM categories_index ORDER BY `products_id` DESC
    Ergebnis meines Shops für NEUE Artikel:
    [​IMG]


    Frage:
    Da ich die Tabelle MySQL-Tabelle 'categories_index' bzw. den Inhalt Spalte '(Link nur für registrierte Nutzer sichtbar.)' dringend für eine weitergehende Auswertung/Verwertung benötige, ist meine Frage, wie AKTUELL vom Shopsystem nun die Zuordnung von Artikeln in deren jeweilige Ober- und Unterkategorie abgespeichert wird?

    Konkret: in welcher Tabelle MySQL-Tabelle bzw. welchen Spalten erfolgt NUN aktuell die Zuordnung von Artikeln in deren jeweilige Ober- und Unterkategorie?
     

    Anhänge:

  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.097
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Ich kanns dir zwar nicht direkt sagen aber da Gambio die DB aufräumen möchte wäre es gut für anbinudngen auf die API umzustellen und sich die Daten darüber zu holen. Sonst passiert sowas sicher immer wieder mal.
     
  3. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Die Tabelle ist der Cache für Kategoriezuordnungen, der lässt sich auch über die Toolbox neu aufbauen. Der eigentliche Ort der Informationen ist aber die products to categories Tabelle.

    Wie kommen deine Artikel in den Shop?
     
  4. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    Du meinst die "Toolbox mit dem Schraubenschlüssel-Icon im Adminbereich"?
    Habe da gerade mal reingeschaut...über welchen Untermenü-Punkt dort kann ich da die Tabelle MySQL-Tabelle 'categories_index' neu aufbauen?

    Die Tabelle 'products_to_categories' habe ich auch schon gesehen,
    diese enthält aber NUR die UNTERSTE Kategorie, in der sich ein Artikel befindet...
    Siehe den Screenshot:

    [​IMG]


    D.h. die Tabelle 'products_to_categories' enthält NICHT den GESAMTEN (Ober-/Unter-)Kategoriepfad,
    wie die Tabelle 'categories_index'. Und ich benötige den GESAMTEN (Ober-/Unter-)Kategoriepfad.
    Siehe die Tabelle 'categories_index' mit dem GESAMTEN (Ober-/Unter-)Kategoriepfad:

    [​IMG]



    P.S: Meine neuen Artikel kommen ich den Shop indem ich einen bestehenden Artikel
    zunächst im Shop kopiere und dann hinterher per EXCEL anpasse/korrigiere...
     

    Anhänge:

  5. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Das ist der Artikel / Kategoriezuordnungscache.

    Das ist richtig. Den Rest des Pfades holt man sich per categories Tabelle. Man schaut für die Kategorie welche deren Oberkategorie ist. Das macht man so oft, bis die Oberkategorie 0 ist, dann ist man im Toplevel.

    Sich da nur auf einen Cache zu verlassen ist dennoch nicht goldig. Ein Cache ist nie die absolute Wahrheit.

    Urks, CSV Imports also...
     
  6. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    Ja, danke für die infos!

    Dank der Info(s) habe ich jetzt verstanden, dass die MySQL-Tabelle 'categories_index' NICHT BEIM (manuellen) Kopieren/Anlegen von Artikeln vom ShopSystem "mitgeschrieben"/insertet wird...(wie ich bisher annahm)...
    ....sondern vom ShopSystem (automatisch) beim LÖSCHEN des Caches (über die Toolbox im Admin-Bereich) immer (wieder) neu/aktuell erstellt wird...


    So ist nun - nach einer AKTUELLEN Löschung des Caches - auch für die ganzen aktuellen Artikel der GESAMTE (Ober-/Unter-)Kategoriepfad in der Tabelle 'categories_index' vorhanden...!
    Siehe:

    [​IMG]


    Sehr schön!
    "Diese (kleine) Lösung" reicht mir für meine Auswertungen/Verarbeitungen....
    Nochmals vielen Dank!
     

    Anhänge:

  7. tho_os

    tho_os Erfahrener Benutzer

    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    Hallo,
    über welchen Menüpunkt wird in der 4.8 die categories_index aktualisiert?
     
  8. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Ich nehme mal an im Backend über Toolbox -> Cache -> Cache für Artikel- und Kategoriezuordnungen neu erzeugen
     
  9. tho_os

    tho_os Erfahrener Benutzer

    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    Habe ich mehrfach ausprobiert!
    Nicht hat sich geändert.
    Die categories_index ist bei mir 30mb groß.
    Da sind tausende Einträge zu Artikel drin die gar nicht mehr als Artikel angelegt sind.

    Was bedeutet überhaupt -0-?
     
  10. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    -0- dürfte die TOP Kategorie sein.
    Aber wenn Einträge zu nicht mehr existenten Artikeln drin sind, dürfte irgendwas anderes im Argen liegen.
    Hast Du auch mal ALLE caches gelöscht, von unten nach oben?
     
  11. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Wie hast Du die Artikel denn gelöscht?
     
  12. tho_os

    tho_os Erfahrener Benutzer

    Registriert seit:
    25. März 2018
    Beiträge:
    125
    Danke erhalten:
    1
    Danke vergeben:
    5
    @barbara
    Gute Frage!
    Ich habe den Shop seit 1 Jahr und war damit noch nie Online.
    Nur damit beschäftigt alles Einzurichten und Bugs von Gambio zu umschiffen!

    Da hab ich vieles ausprobiert und auch vieles wieder gelöscht.

    Wie oder wann die Datensätze dann über geblieben sind kann ich nicht sagen.
    Hab aber nur Funktionen genutzt die man im Shop anklicken kann also kein manuelles löschen in der DB!

    Hab es nur bemerkt da ich jetzt so langsam an einen Start des Shop komme, falls nicht wieder
    ein Bug mir das Leben schwer macht.

    Der Shop ist zwar Style technisch nicht der Renner aber mir kommt es auf die Funktionen an die ich noch eingebaut habe
    und die kleine Änderungen die ich noch so gemacht habe. Shop Kenner werden diese sehen der normale Shop Besucher nicht.


    @markus_wick
    Cache von unten nach oben geklickt, keine Änderung!
    Macht das überhaupt einen Unterschied von oben nach unten oder umgekehrt?

    Habe jetzt alle die nicht mehr mit einem Artikel verknüpft waren gelöscht!

    Jetzt ist nur noch die Frage offen:

    Was bedeutet die -0-

    Also "TOP" kann es nicht sein da bei Deaktivierung beim Artikel die -0- stehen bleibt und eine Kategorie 0 gibt es nicht!

    Ist wichtig für mich da ich per Datenbank Daten ändern möchte und da nichts falsch machen will.
     
  13. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    Ich kann da auch nur raten, aber ich würde sagen in der Hierarchie ist -0- die oberste Position. Ein Artikel der KEINER Kategorie zugeordnet ist dürfte immer noch -0- haben.

    Ich würde an Deiner Stelle mal eine Artikel aus allen Kategorien rausnehmen, cache wieder leeren und dann nachsehen was sich in der Tabelle geändert hat.
    ABER: Bedenke auch was Wilken oben geschrieben hat:
    Die MySQL-Tabelle 'categories_index' ist der Artikel / Kategoriezuordnungscache!
    Heisst: Darin etwas zu ändern ist NICHT zielführend! Da dieser beim Cache leeren (und dass passiert immer wieder mal das man das tut/muss) neu aufgebaut wird, wären Deine Änderungen ja weg. Auch zum Auswerten würde ich die eigentlich dafür zuständigen Tabellen nehmen, also die products_to_categories um zu sehen welcher Kategorie ein Artikel zugeordnet ist und dann in der categories Tabelle nachsehen (Ebene für Ebene hoch bis zur obersten) wie die Kategorien wiederrum in einander verschachtelt sind.
     
  14. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    966
    Danke erhalten:
    214
    Danke vergeben:
    153
    #14 markus_wick, 28. März 2023
    Zuletzt bearbeitet: 28. März 2023
    Bin jetzt aber mit MySQL nicht ganz so bewandert...
    Hast Du die Möglichkeit manche Dinge auch über die REST_API zu machen?

    Irgendwie haben wir jetzt das Thema von Fabian gekapert, sorry....

    Hab mal aus Interesse nachgesehen.
    Ich habe einen Artikel mit der productID 3, ein Bauteil für ein MacBook A1342 von 2010, passt auch zum Modell von 2009.

    In der product_to_categories steht also zwei Mal die productID 3, einmal der Kategorie 48 und einmal der 49 zugeordnet (A1342 von 2019 und 2010).
    Parent ID ist jeweils die 10 (MacBook A1342).
    Parent der 10 ist die 2 (MacBook)
    Parent der 2 ist die 0.
    Daraus ergibt sich: Die productID 3 ist "kind" der Kategorie 48 und 49, diese sind "kind" der Kat 10, diese "kind" der 2 und diese schliesslich "kind" der 0.

    Ergibt (und steht so im index)
    -0--2--10--48--49-
     
  15. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ja, das macht einen Unterschied.
    Angenommen Du installierst ein Modul und löscht von oben nach unten, dann wird erst die Seite neu erstellt, dann das Modul und am Ende der Test.
    Damit ist weder das Modul noch der Text auf den Seiten.
    Man sollte deshalb immer von unten nach oben löschen, damit die Seite zum Schluss neu aufgebaut wird.

    Ea gibt allerdings auch Modul-Installations-Anleitungen, wo eine genaue Reihenfolge vorgegeben wird.