XMLDB - TYPE="binary"

XMLDB - TYPE="binary"

von Michael Niedermair -
Anzahl Antworten: 2

Hallo Zusammen,

unter https://docs.moodle.org/dev/XMLDB_column_types sind für binary LONGBLOB,MEDIUMBLOB und BLOB bei MySQL definiert.

Unter https://docs.moodle.org/dev/XMLDB_creating_new_DDL_functions steht, dass ich "small", "medium", "big, for both TEXTS and BINARIES definieren kann.

In upgrade.php kann ich dies auch so angeben.

$table->add_field('file', XMLDB_TYPE_BINARY, 'medium', null, null, null, null);

Aber wie gebe ich dies in der install.xml Datei an?

Beim XMLDB-Editor ist das Feld "Length:" inaktive und die Angabe LENGTH="medium" in install.xml wird ignoriert.

Gruß

Michael

Mittelwert:  -
Als Antwort auf Michael Niedermair

Re: XMLDB - TYPE="binary"

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler

Hallo Michael,

die Werte können in XMLDB nicht angegeben werden. Moodle verwendet standardmäßig "big", also bei MySQL z.B. "LONGBLOB".

Die in der Methode "add_field" angegebenen "Precision" Werte werden, wenn ich nicht irre, auch nicht verwendet.

Auszug aus "xmldb_field.php"

        if ($this->type == XMLDB_TYPE_BINARY || $this->type == XMLDB_TYPE_TEXT) {
            $this->length = null;
            $this->decimals = null;
        }


Viele Grüße

Andreas

Als Antwort auf Andreas Grabs

Re: XMLDB - TYPE="binary"

von Michael Niedermair -

Hallo Andreas,Danke für die Info.

"big" ist zwar etwas überdimensioniert, aber besser so, als zu wenig.

Hintergrund: Ich generiere Notenblätter (Tabellen und Spinnengrafik) und speichere diese in einer Tabelle ab (cronjob). Erst wollte ich diese im Dateisystem ablegen und über den Dateinamen bzw. das Verzeichnis weitere Infos wie Klasse, SchülerId, ... hinterlegen, habe mich aber dann doch für die DB-Tabelle entschieden. Performance mäßig konnte ich dabei keinen Unterschied feststellen (es werden 3400 PDF-Seiten generiert), aber vom Zugriff ist es deutlich bequemer und beim DB-Backup geht hier gleich alles auf einmal mit.

Gruß

Michael