OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

206_user_settings_value_mediumtext.sql

1 KB
-- ============================================================
-- Benutzereinstellungen: Wertspalte auf TEXT verbreitern
-- ============================================================
-- In `user_settings` liegen mehrere Einstellungen als JSON in einem einzigen
-- Wert: gespeicherte Filter-Ansichten des Inventars, die Dashboard-Belegung,
-- der Schnellzugriff, die eigene Themen-Sortierung und das benutzerdefinierte
-- Menü-Layout. Diese Werte wachsen mit der Nutzung, während VARCHAR(500) eine
-- feste Decke setzte – deutlich unterhalb dessen, was die Anwendung selbst
-- zulässt (etwa 8192 Zeichen für das Menü-Layout).
--
-- Da die Anwendung mit STRICT_TRANS_TABLES arbeitet, wies die Datenbank einen
-- zu langen Wert ab, statt ihn zu kürzen. Die Spalte muss deshalb mindestens
-- fassen, was die Anwendung selbst durchlässt.
--
-- MEDIUMTEXT statt TEXT: `json_encode` schreibt Zeichen außerhalb von ASCII als
-- `\uXXXX` und braucht damit sechs Bytes je Umlaut. Die zulässige Höchstzahl
-- gespeicherter Ansichten (20 zu je 60 + 500 Zeichen) überschreitet mit
-- Umlauten die 65 535 Bytes von TEXT; MEDIUMTEXT liegt mit rund 16 Millionen
-- Bytes über jeder von der Anwendung durchgelassenen Eingabe.
--
-- Idempotent: MODIFY COLUMN ist zustandsunabhängig; MEDIUMTEXT nimmt alle
-- bisherigen Werte unverändert auf, es geht kein Inhalt verloren.

ALTER TABLE `user_settings`
    MODIFY COLUMN `setting_value` MEDIUMTEXT NULL COMMENT 'Wert der Einstellung; bei mehrteiligen Einstellungen JSON';