Skip to content

ADR-0045: QGIS-Typen Gruppe, Layer, Datensatz

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

  1. entity_typedataset | group | layer (API). Spalte bleibt management_tab mit denselben Werten. UI: Datensatz / Gruppe / Layer.
  2. 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 über group_codes (ADR-0048). Layer→Gruppe als parent_code und Datensatz↔GIS verboten.
  3. Gruppe: nur Entitätsangaben Bezeichnung, ID, Typ und Scope (kein Katalogfeld). Keine Records, keine GIS-Zeilen.
  4. Layer: Felder, geom_kindpoint | linestring | polygon. Kein mixed. Altdaten mixed werden auf linestring gemappt. Kinder wählen die Geometrie frei. Eltern mit Layer-Kindern halten keine Features; ihr geom_kind ist dann nur Anzeige (Feld ausgegraut). QGIS (Plugin) sieht nur Blatt-Layer. Blatt-Layer upserten geo_object_kinds.
  5. Datensatz: unverändert tabellarisch; Föderation nur Standard (ADR-0043).
  6. Kein fester Layerbaum: GET /map/layer-tree liefert Gruppen + Blatt-Layer des Projektschemas. Kein Auto-„Version 1“, kein Entwurf/Genehmigung-Zweig. Die Tokens planung / normierung / produkt sind kein Vertrag mehr (weder Explorer, Farben, Kinds, Import noch QGIS-Insert). stage / version_id werden nicht mehr geschrieben. Copy-to-Normierung und Project-Versions-APIs: 410.
  7. QGIS-ZIP-Export entfällt. Transfer ist Live-Postgres über das Plugin (ADR-0030).
  8. Promote nur Datensatz → Layer. copy_parent_fields entfällt.
  9. 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 / tenant 0009: Werte remap, geom_kind, CHECKs. 0023 / tenant 0011: mixedlinestring, CHECK ohne mixed.
  • ADR-0008 superseded (ZIP-Weg).
  • ADR-0017 und ADR-0024 superseded (Copy/Freeze intern entfernt; HTTP 410).
  • Alembic public 0032 / tenant 0020: CHECKs mit planung fallen; geo_objects.stage, map_layers.stage, source_files.stage nullable und geleert; QGIS-Insert schreibt kein produkt.
  • 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.