Hallo Zusammen,
im Zuge von Entwicklungsarbeiten ist mir aufgefallen, dass die Speicherung der Wertelisten nicht sauber umgesetzt wurde. Aktuell werden Wertelisten mit dem Pipe-Symbol "|" getrennt in der DB abelegt. Allerdings wurde bei der Umsetzung nicht darauf geachtet, User-Input sauber zu escapen. Was bedeutet das:
Wenn ich ein Attribut mit einer Werteliste anlege, die z.B. wie folgt aussieht:
Blau|Gelb|Grün|Rot
Sobald man daher die Attribut-Verwaltung wieder neu öffnet, werden statt 2 Werten aufeinmal 4 Werte angezeigt:
Diese Umsetzung ist sehr merkwürdig. Wenn man schon eine Werteliste nicht normalisiert in der Datenbank speichert, dann sollte das doch wenigstens ein Standard-Format wie z.B. JSON sein. Soweit ich weiß, unterstützt MSSQL sogar JSON als Feld-Typen. JSON hat von Haus aus eine entsprechende Escaping-Strategie im Standard mit geliefert, sodass man sich gar nicht mehr um dieses Thema hätte kümmern müsste. Ich würde daher empfehlen, die Speicherung der Werteliste auf JSON umzustellen oder die Datenbank an dieser Stelle zu normalisieren.
Gruß
mschop
im Zuge von Entwicklungsarbeiten ist mir aufgefallen, dass die Speicherung der Wertelisten nicht sauber umgesetzt wurde. Aktuell werden Wertelisten mit dem Pipe-Symbol "|" getrennt in der DB abelegt. Allerdings wurde bei der Umsetzung nicht darauf geachtet, User-Input sauber zu escapen. Was bedeutet das:
Wenn ich ein Attribut mit einer Werteliste anlege, die z.B. wie folgt aussieht:
- Blau|Gelb
- Grün|Rot
Blau|Gelb|Grün|Rot
Sobald man daher die Attribut-Verwaltung wieder neu öffnet, werden statt 2 Werten aufeinmal 4 Werte angezeigt:
- Blau
- Gelb
- Grün
- Rot
Diese Umsetzung ist sehr merkwürdig. Wenn man schon eine Werteliste nicht normalisiert in der Datenbank speichert, dann sollte das doch wenigstens ein Standard-Format wie z.B. JSON sein. Soweit ich weiß, unterstützt MSSQL sogar JSON als Feld-Typen. JSON hat von Haus aus eine entsprechende Escaping-Strategie im Standard mit geliefert, sodass man sich gar nicht mehr um dieses Thema hätte kümmern müsste. Ich würde daher empfehlen, die Speicherung der Werteliste auf JSON umzustellen oder die Datenbank an dieser Stelle zu normalisieren.
Gruß
mschop