Eigenschaften / properties in < GX 4.5

Thema wurde von Anonymous, 6. März 2022 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.122
    Danke vergeben:
    947
    #1 Anonymous, 6. März 2022
    Zuletzt bearbeitet: 7. März 2022
    Hallo,

    ich habs noch nicht gerafft, wie Eigenschaften bzw. properties in der Datenbank vor GX 4.5 funktionieren. Was ich gerafft habe:

    • Es gibt in der Tabelle properties Eigenschaften, losgelöst von Artikeln.
    • Es gibt in der Tabelle properties_values die Eigenschaftswerte, die den Eigenschaften zugeordnet sind
    • Es gibt in der Tabelle products_properties_combis für jede Kombination aus Eigenschaftswerten eine Variationskombination, die auch einem Artikel zugeordnet ist.
    • Es gibt die products_properties_combis_values Tabelle, in der jeder products_properties_combi ein oder mehr Werte zugeordnet werden.
    Wofür ist die products_properties_admin_select? Und die products_properties_index ist nur eine Index-Tabelle, die bei jedem Leeren des Eigenschaftscache neu erstellt wird? Aus welchen Tabellen denn wohl?
     
  2. BigRib

    BigRib Erfahrener Benutzer

    Registriert seit:
    26. September 2018
    Beiträge:
    248
    Danke erhalten:
    48
    Danke vergeben:
    29
    Ich habe mich mit dem Thema auch schon einiges befasst. Ist die Frage noch aktuell?

    products_properties_admin_select

    Hier sind die properties dem Artikel zugeordnet, die dir angezeigt werden, wenn du eine neue Kombination erstellst. Sozusagen die Häkchen sind da abgespeichert ;D

    upload_2022-5-18_19-4-14.png

    products_properties_index

    In der Tabelle ist die Zusammenfassung aus den Tabellen

    properties_values
    properties_values_description
    properties_description
    products_properties_combis
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    19. Juni 2012
    Beiträge:
    4.831
    Danke erhalten:
    1.122
    Danke vergeben:
    947
    Na ja... Noch ein paar Tabellen mehr. Wichtig zu wissen ist aber auf jeden Fall, dass die products_properties_index Tabelle bei jedem Erneuern des Artikeleigenschaften-Cache neu erstellt wird. Also in die Tablelle schreiben macht wenig Sinn. Und wenn du in eine andere schreibst, musst du immer den Cache leeren danach
     
  4. BigRib

    BigRib Erfahrener Benutzer

    Registriert seit:
    26. September 2018
    Beiträge:
    248
    Danke erhalten:
    48
    Danke vergeben:
    29
    #4 BigRib, 18. Mai 2022
    Zuletzt bearbeitet: 18. Mai 2022
    Keine "paar", nur eine habe ich vergessen :)

    Code:
    FROM
                        properties AS p
                            LEFT JOIN properties_values AS pv USING (properties_id)
                            LEFT JOIN products_properties_combis_values AS ppcv USING (properties_values_id)
                            LEFT JOIN products_properties_combis AS ppc USING (products_properties_combis_id)
                            LEFT JOIN properties_description AS pd ON (pv.properties_id = pd.properties_id)
                            LEFT JOIN properties_values_description AS pvd ON (pv.properties_values_id = pvd.properties_values_id)
    
    Das ist korrekt, du musst es in den oben genannten Tabellen ändern und dann kannst du mit folgendem Code automatisch abgleichen. (Bis GX4.0.01 geht's zumindest noch)

    Code:
    # Sort Order Bilden anhand der zuvor neu gespeicherten Eigenschaften
        $coo_properties_data_agent = MainFactory::create_object('PropertiesDataAgent');
        $coo_properties_data_agent->rebuild_properties_index((int)$p_data_array['products_id']);
    
        $this->reset_combis_sort_order((int)$p_data_array['products_id']);