Philipp Hasenfratz: MySQL - Zusätzliche Eigenschaften definieren

Beitrag lesen

Halihallo Daniel

Kann ich für eine Spalte einer MySQL-Datenbank benutzerdefinierte Parameter angeben?

Nein. Eine Datenbank ist zum Abbilden staatischer Information gedacht. Das was du
preferierst, wäre ein Schema dynamischer Information.

Diese benötige ich um zusätzliche Informationen zum Inhalt des Feldes anzugeben(z.B. ob der Inhalt des Feldes ein Pfad zu einer Datei ist und so eine Datei included werden muss, oder ob es sich um einen Text handelt, welcher direkt übernommen werden kann.)

Datenbanken halten sich (zumindest die meisten) an die sogenannte 1 Normalform. Diese
verbietet, dass einzelne Attribute (Zellen) mehrwertig sind. Eine Zelle darf lediglich
einen Wert enthalten.

Muss ich da eine zusätzliche Tabelle machen und darin definieren, dass es sich bei Spalte x um Pfadangaben und bei Spalte y um Text handelt?

Nicht umbedingt. Die Angabe kann auch in der selben Tabelle manifestiert sein.

id   |   x    |   type
1    | value1 |   pfad

du hast ein Attribut x und möchtest den Typ desselben definieren, dies liesse sich
über

x  |  type_of_x

abbilden. Wobei type_of_x z. B. ein SET ist. SET('string','array','pfad',...)

Bisher habe ich z.B ein "p_" oder ein "t_" vor den Spaltenname gefügt. So konnte das PHP-Script auslesen ob es sich um ein Feld mit Pfadangaben oder um einfachen Text handelt.

das ist andere Möglichkeit, ja.

Da das ganze jetzt ein grösseres Projekt wurde und vielmehr Eigenschaften definiert werden müssen ist das aber zu umständlich.

Das Datenbankmodell sollte redesigned werden um diesen neuen Ansprüchen zu genügen und dies auf alle Zeit, falls die Änderungen nicht mehr sinnvoll abbgebildet werden können.

Gibt es eine Lösung? (Abgesehen von einer zusätzlichen Tabelle?)

Jein. Siehe oben.

Viele Grüsse

Philipp