ADR-0010: geo_objects als GIS-Stamm
- Status: accepted
- Datum: 2026-08-26
- Phase: P1
- Lastenheft: ED-01, ED-04, ED-08; Fachmodell Variante C
Kontext
Schema und Webkarte behandeln fiber_routes als das Geo-Objekt. Fiber-Route ist eine kind. Querung, TKG, VAO, Verkehrszeichen, Genehmigungsverlängerung teilen denselben Stamm. Zwei Inventare (Planung ≠ Normierung) sind zwei Zeilen, kein Statusflag.
Entscheidung
SSOT-Nomen ist geo_objects: Dimensionen stage (planung / normierung / produkt) × kind. Registry geo_object_kinds. Optionale 1:1-Beilage pro kind. fiber_routes wird Kompat-VIEW (schreibbar per INSTEAD OF, bis QGIS umgestellt ist), nicht writable SSOT. Neue kind: Registry-Zeile + optionale Beilage, dieselbe MVT/API-Familie.
Begründung
Eine Mega-Tabelle mit Spalte pro Produktfeld und kopierte Geometrie auf jeder Beilage widersprechen dem Fachmodell. JSONB als Berichtsspeicher ebenfalls. GIST auf der Hot-Tabelle; Versionen in der Sidecar-Tabelle.
Verworfene Alternativen
| Alternative | Warum verworfen |
|---|---|
fiber_routes bleibt Schreib-SSOT |
Zementiert eine kind; neue Produkte brauchen neue Tabellen/URLs |
| Statusflag Planung/Normierung auf einer Zeile | ED-01/ED-04: zwei Inventare |
| Mega-Tabelle / JSONB für Berichtsfelder | Schema-Drift; ED-10 braucht Katalog + Sets |
| Versionen in der Tile-Hot-Tabelle | MVT liest nur current; Historie gehört in die Sidecar |
Neue /map/fiber-routes-artigen Endpunkte als Vertrag |
Kind-generischer Vertrag: /map/tiles/{stage}/… |
Folgen
QGIS schrieb übergangsweise über die VIEW; die View ist entfernt (ADR-0050). stage als Pipeline-Dimension (planung / normierung / produkt) ist aufgehoben (ADR-0045): Spalte bleibt nullable leftover, Writes setzen sie nicht. Filter und Explorer laufen über Schema-kind. QGIS nutzt qgis_* (ADR-0049).