bstroebl / xplanPostGIS

Implementation of German standard XPlanung for PostgreSQL/PostGIS
GNU General Public License v2.0
8 stars 7 forks source link

Fehlende Verknüpfung zwischen XP_Objekt und XP_BegruendungAbschnitt? #6

Closed swen100 closed 4 years ago

swen100 commented 4 years ago

Hallo Herr Ströbl,

laut XplanGML v5.0+ besitzt ein XP_Objekt das Attribut "xplan:refBegruendungInhalt" mit u.U. mehreren Verweisen auf Begründungstexte (XP_BegruendungAbschnitt [0..*]).

"...Referenz eines raumbezogenen Fachobjektes auf Teile der Begründung."

Hierfür fehlt allerdings eine datenbankseitige Verbindung zwischen diesen beiden Tabellen. Zumindest habe ich keine Möglichkeit gefunden, die Objekte untereinander zu referenzierten - oder habe ich etwas übersehen?

Mit einer für das XP_Objekt angepassten Tabellendefinition entnommen aus "XP_Plan_begruendungsTexte" müsste es doch gehen, oder?

-- Table: "XP_Basisobjekte"."XP_Objekt_begruendungsTexte"
-- DROP TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte";
CREATE TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte"
(
    "XP_Objekt_gid" bigint NOT NULL,
    "begruendungsTexte" integer NOT NULL,
    CONSTRAINT "XP_Objekt_begruendungsTexte_pkey" PRIMARY KEY ("XP_Objekt_gid", "begruendungsTexte"),
    CONSTRAINT "fk_XP_Objekt_has_XP_BegruendungAbschnitt_XP_BegruendungAbschnitt1" FOREIGN KEY ("begruendungsTexte")
        REFERENCES "XP_Basisobjekte"."XP_BegruendungAbschnitt" (id) MATCH SIMPLE
        ON UPDATE CASCADE
        ON DELETE NO ACTION,
    CONSTRAINT "fk_XP_Objekt_has_XP_BegruendungAbschnitt_XP_Objekt1" FOREIGN KEY ("XP_Objekt_gid")
        REFERENCES "XP_Basisobjekte"."XP_Objekt" (gid) MATCH SIMPLE
        ON UPDATE CASCADE
        ON DELETE CASCADE
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte"
    OWNER to postgres;

GRANT ALL ON TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte" TO postgres;

GRANT SELECT ON TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte" TO xp_gast;

GRANT ALL ON TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte" TO xp_user;

COMMENT ON TABLE "XP_Basisobjekte"."XP_Objekt_begruendungsTexte"
    IS 'Verweis auf eine Abschnitt der Begründung.';

-- Index: idx_fk_begruendungsTexte_XP_BegruendungAbschnitt2
-- DROP INDEX "XP_Basisobjekte"."idx_fk_begruendungsTexte_XP_BegruendungAbschnitt2";
CREATE INDEX "idx_fk_begruendungsTexte_XP_BegruendungAbschnitt2"
    ON "XP_Basisobjekte"."XP_Objekt_begruendungsTexte" USING btree
    ("begruendungsTexte" ASC NULLS LAST)
    TABLESPACE pg_default;

-- Index: idx_fk_begruendungsTexte_XP_Objekt1
-- DROP INDEX "XP_Basisobjekte"."idx_fk_begruendungsTexte_XP_Objekt1";
CREATE INDEX "idx_fk_begruendungsTexte_XP_Objekt1"
    ON "XP_Basisobjekte"."XP_Objekt_begruendungsTexte" USING btree
    ("XP_Objekt_gid" ASC NULLS LAST)
    TABLESPACE pg_default;

Grüße, Swen Zanon

bstroebl commented 4 years ago

@swen100 Danke