ADR-0045: QGIS-Typen Gruppe, Layer, Datensatz
- Status: accepted
- Datum: 2026-09-02
- Phase: Web Schema-CMS
- Bezug: ADR-0030, ADR-0033, ADR-0037, ADR-0041, ADR-0044
Kontext
Schema-CMS sprach Datenobjekt / Layer / Feature. „Layer“ war die QGIS-Gruppe, „Feature“ der Zeichen-Typ. Der Editor-Baum hing fest an Version / Planung / Genehmigung / Abschnitt. Nutzer brauchen die QGIS-Einheiten: Gruppe (Ordner), Layer (Ebene mit Attributen), plus Linetra-Datensatz. Capture läuft später über das Plugin; ein ZIP-Export (.qgs + GeoPackage) ist kein Lieferweg mehr.
Entscheidung
entity_type∈dataset|group|layer(API). Spalte bleibtmanagement_tabmit denselben Werten. UI: Datensatz / Gruppe / Layer.- Ein
parent_code, typisierte Kanten: Gruppe→Gruppe (Ordner, max. Tiefe 8); Layer→Layer (eine Vererbungsstufe, Felder live, Eltern abstrakt); Datensatz→Datensatz (unverändert). Layer liegen in Gruppen übergroup_codes(ADR-0048). Layer→Gruppe alsparent_codeund Datensatz↔GIS verboten. - Gruppe: nur Entitätsangaben Bezeichnung, ID, Typ und Scope (kein Katalogfeld). Keine Records, keine GIS-Zeilen.
- Layer: Felder,
geom_kind∈point|linestring|polygon. Keinmixed. Altdatenmixedwerden auflinestringgemappt. Kinder wählen die Geometrie frei. Eltern mit Layer-Kindern halten keine Features; ihrgeom_kindist dann nur Anzeige (Feld ausgegraut). QGIS (Plugin) sieht nur Blatt-Layer. Blatt-Layer upsertengeo_object_kinds. - Datensatz: unverändert tabellarisch; Föderation nur Standard (ADR-0043).
- Kein fester Layerbaum:
GET /map/layer-treeliefert Gruppen + Blatt-Layer des Projektschemas. Kein Auto-„Version 1“, kein Entwurf/Genehmigung-Zweig. Die Tokensplanung/normierung/produktsind kein Vertrag mehr (weder Explorer, Farben, Kinds, Import noch QGIS-Insert).stage/version_idwerden nicht mehr geschrieben. Copy-to-Normierung und Project-Versions-APIs: 410. - QGIS-ZIP-Export entfällt. Transfer ist Live-Postgres über das Plugin (ADR-0030).
- Promote nur Datensatz → Layer.
copy_parent_fieldsentfällt. - Verfahren (
work_sections, Anträge) unverändert — eigener ADR.
| Gate | Recommendation | Why it fits here | Rejected alternative and why |
|---|---|---|---|
| Baum | ein parent_code |
QGIS-Layerbaum; eine Schema-Liste | zweites group_code — doppelte Hierarchie |
| Wire | entity_type + Werte dataset/group/layer |
„layer“ darf nicht Gruppe heißen | nur UI-Labels — API bleibt falsch |
| GIS-Stamm | geo_objects.kind = Blatt-Layer |
ADR-0010 | Tabelle pro Layer |
| Pipeline | Vertrag stoppen, Spalten erst nullable | Editor/Tests sonst sofort tot; Verfahren hängt an Abschnitten | DROP aller Stufen-Tabellen in einem Diff |
| Export | Endpunkte löschen | Plugin speichert das QGIS-Projekt | Export liegen lassen |
Begründung (für dieses Setup)
QGIS kennt Gruppe und Layer, nicht „Feature-Typ“ und nicht Version/Planung als Schema. Eine Hot-Tabelle skaliert über kind + GIST; der Baum ist Katalog, kein Feature-Dump. ZIP-Export doppelt den Plugin-Weg.
Verworfene Alternativen
| Alternative | Warum verworfen |
|---|---|
Nur Labels ändern (layer bleibt Gruppe) |
API und Dialog widersprechen QGIS |
| Abschnitte zu GIS-Layern umdeuten | Antrag bleibt an work_sections |
| Live-Inherit auch für Gruppen | Gruppen haben keine Felder |
| Export als INT-01 belassen | Plugin ist der Transfer (ADR-0030) |
Folgen
- Alembic public
0021/ tenant0009: Werte remap,geom_kind, CHECKs.0023/ tenant0011:mixed→linestring, CHECK ohnemixed. - ADR-0008 superseded (ZIP-Weg).
- ADR-0017 und ADR-0024 superseded (Copy/Freeze intern entfernt; HTTP 410).
- Alembic public
0032/ tenant0020: CHECKs mitplanungfallen;geo_objects.stage,map_layers.stage,source_files.stagenullable und geleert; QGIS-Insert schreibt keinprodukt. - ADR-0037 Labels: Datensatz / Gruppe / Layer.
- ADR-0044 Layer-Zweig superseded (Layer erben jetzt wie frühere Features; Gruppen erben nie).
- Plugin-Apply und Editor-Client sind Folgearbeit, nicht dieser Schnitt. Schreibbare Views pro Blatt-Layer: ADR-0049.