Contao-Camp 2024
Ergebnis 1 bis 6 von 6

Thema: EFG Abfrage an DB

  1. #1
    Contao-Fan
    Registriert seit
    28.09.2010.
    Ort
    Leipzig
    Beiträge
    461

    Standard EFG Abfrage an DB

    Hallo Leute,

    ich habe das Auflsitungmodul von EFG benutz und langsam kommt das an seine grenzen.
    Ich habe mir andere Abfragen an die Tabelle gebastelt, aber die machen die Seite extrem lahm.

    Jetzt ist meien Frage, kann mir wer sagen wo ich die Auflistungabfrage im Code finde. Weil die Auflistungsabfrage ist doch schon schneller als meine Abfrage aber unflexible und ich möchte die halt dynamischer gestalten.

    Danke
    Geändert von overHead (04.12.2017 um 09:19 Uhr)

  2. #2
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Es ist schon rund 3 Jahre her, als ich mich mit der Thematik beschäftigt habe. Von daher müssen meine Erinnerungen reichen.

    EFG verändert nie die Daten der Originaltabelle, sondern legt eine oder mehrere separate Tabellen an. Dort wird jeder Datensatz mehrfach gespeichert. D.h. speicherst Du Datensatz A 5 mal, dann findest Du 5 Datensätze A in diesen Extratabellen. Mit der Zeit wird der EFG dadurch sehr langsam, weil auf Performance keine Rücksicht genommen wird. Von meiner Original-Tabelle mit rund 5000 Datensätzen, hat der EFG in seiner Extratabelle(n) das Vielfache an Daten gehabt. Bei einer Abfrage in der Extratabelle(n) müssen immer die aktuellsten Datensätze herausgesucht werden.

    Ich habe mich irgendwann entschlossen dieses Dilemma zu lösen, indem ich eine Contao-Erweiterung daraus gemacht habe. Bei diesen Programmierarbeiten mußte ich mich natürlich auch mit der EFG-Datenhaltung beschäftigen. Vielleicht habe ich irgendwo noch dokumentierten Code rumliegen.

    EDIT: Ich sehe gerade, daß das Deine Frage nicht beantwortet. Aber vielleicht war es trotzdem hilfreich.
    Geändert von Samson1964 (04.12.2017 um 10:16 Uhr)
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  3. #3
    Contao-Fan
    Registriert seit
    28.09.2010.
    Ort
    Leipzig
    Beiträge
    461

    Standard

    Hey, danke.

    Naja ich muss jetzt das so beibehalten.
    Ja die Datenback speichert halt sehr viele Daten, bis jetzt ist noch alles i.O.
    Was hastn da für Erweiterung geschrieben? Hat die auch eine Frontendspeicherung und eine Auflistung mit Suche?

    Also die Migration würde zwar ewig dauern aber ein Umstieg würde ich probieren, wenn deine Erweiterung das hat was ich brauch.

  4. #4
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Wir verwalten unsere Trainerlizenzen in einer MySQL-Datenbank. Ursprünglich hat die Mitarbeiterin direkt die Daten in phpMyAdmin bearbeitet. Es war ja nur eine Tabelle mit etwa 5000 Datensätzen und die Mitarbeiterin kam gut damit zurecht, nutze auch die Exportfunktionen von phpMyAdmin. Dann führten wir 2013 Contao ein. Ich dachte mir, ich erlöse die Mitarbeiterin von phpMyAdmin und ich engagierte einen Contao-Fachmann, der die Tabelle für den EFG anpaßte. Damals hatte ich noch keine Ahnung von Contao.
    Mit der Zeit wurde der Zugriff (nur im BE, kein FE) immer langsamer. Schuld daran war die Datenstruktur des EFG. Da ich mittlerweile einigermaßen fit bei der Contaoprogrammierung war, begann ich eine Erweiterung zu schreiben, die den EFG ablösen sollte. Beim Import der Daten aus der Quelltabelle in eine tl_trainerlizenzen war ich ziemlich überrascht, das ich nur alte Daten zu sehen bekam. Nämlich die die vor der EFG-Benutzung aktuell waren. Mir fiel dann auf, das der EFG gar nicht die Quelltabelle zur Speicherung benutzt, sondern Verweise oder Änderungen oder Ähnliches in einer anderen Tabelle abspeichert. Durch diese Erkenntnis mußte ich mein Importskript jetzt etwas komplizierter gestalten.

    Die jetzige Erweiterung für die Trainerlizenzen besteht aus historischen Gründen immer noch aus der einen Tabelle tl_trainerlizenzen: Hat ein Trainer 3 Lizenzen so steht der Trainer mit 3 Datensätzen drin. Muß seine Adresse geändert werden, muß man gleich 3 Datensätze ändern. Die Tabelle in Adressen und Lizenzen zu splitten hatte ich noch keine Zeit. Zumal dann auch an Rattenschwanz an anderen Änderungen dranhängt. Eigentlich müßte die Erweiterung komplett neu gecodet werden.
    Neue Funktionen hat die Erweiterung nach dem Import aus EFG aber doch bekommen. 2016 habe ich z.B. die Anbindung an die API des DOSB programmiert. Dazu gehört auch ein automatischer Abgleich der Daten in Contao mit denen des DOSB.

    Im FE gibt es nur Lesezugriff auf die Trainerdaten, z.B. hier. Die Erweiterung selbst findet man auch auf GitHub. Wird aber nichts nützen bei dem EFG-Problem. Ich würde Dir aber trotzdem empfehlen, den EFG aufzugeben und alles in eine eigene Erweiterung zu stecken. Das Skript was ich damals für den Export aus EFG verwendet habe, werde ich mal suchen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  5. #5
    Contao-Fan
    Registriert seit
    28.09.2010.
    Ort
    Leipzig
    Beiträge
    461

    Standard

    Danke für deinen ausführliche Beitrag.

    Das Ding ist halt, dass ich Newbie bin in Sachenerweiterung basteln. In Contao gibt es zwar so einen Erweiterungsassi aber da seh ich nicht durch, kann auch sein, dass ich den nicht verstehe.
    Aber mein Augenmerk liegt halt trotzdem auf Sicherheit.

    Ja EFG ist halt einfach tot, aber wenn ich die FE Auflistungsabfrage hätte dann kann ich mir mehr daraus bauen. Weil ich habe riesige union Abfragen die die Verbindung zur Datenbank verlangsamen, die EFG machen das nicht und holen auch riesige Daten raus. Also irgendwas wird da was anderes gemacht als ich.

    p.s. meine Datenbank läuft mit efg bei weit mehr als 5000 Datensätzen immer noch schnell. Aber eigene Abfragen wiederum nicht, deswegen halt meine Frage über die Auflistungsabfrage von efg.

  6. #6
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.792

    Standard

    Mit SQL kenne ich mich wiederum nicht so gut aus. Ich bin aber wenigstens schon soweit, das ich aus dem Kopf weiß wie Standardabfragen mit INSERT, SELECT und UPDATE gemacht werden. Aber bitte nichts Komplexes.
    An die Erweiterungsprogrammierung habe ich mich irgendwann rangewagt, nachdem ich mir die YouTube-Videos von Tristan Lins mehrfach angeschaut habe. Diese Hürde zu nehmen war am Anfang sehr groß, obwohl ich natürlich PHP schon konnte. Mit der Zeit merkt man, ist eigentlich alles ganz easy. Neue Erweiterungen kopiere ich mir aus meinem und fremden Code fast nur noch zusammen. Der Grundstein für die Trainerlizenzen-Erweiterung war damals schnell gelegt. Hat vielleicht zwei Stunden gedauert.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •