Changeset 330 for trunk/import/nutzungsart_definition.sql
- Timestamp:
- 09/10/14 12:08:18 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/nutzungsart_definition.sql
r314 r330 18 18 -- 2013-11-15 In nutzung_class.class können NULL-Werte auftreten. 19 19 -- 2013-11-26 NULL wird durch Zahl "0" ersetzt, "NOT NULL" wieder aktivieren 20 -- 2014-08-26 erweiterte gml_id (wie in den primÀren Tabellen) 20 21 21 22 SET client_encoding = 'UTF-8'; 22 23 23 24 -- Alles auf Anfang! 24 25 --DROP TABLE nutzung;26 --DROP TABLE nutzung_class;27 --DROP TABLE nutzung_meta;28 25 /* 26 DROP TABLE nutzung; 27 DROP TABLE nutzung_class; 28 DROP TABLE nutzung_meta; 29 */ 29 30 30 31 -- Meta-Informationen ueber die Zusammenfassung und Gruppierung 31 32 -- ------------------------------------------------------------ 32 33 33 CREATE TABLE nutzung_meta ( 34 34 nutz_id integer NOT NULL, … … 52 52 -- Alle Abschnitte der "tatsÀchlichen Nutzung" vereinigt in einer Tabelle 53 53 -- Sie sind dann mit einem gemeinsamen Geometrie-Index mit einer SQL-Abfrage auffindbar. 54 -- Dies ist die VoraussetzungfÃŒr eine performante Auskunft.54 -- Dies ist die förderlich fÃŒr eine performante Auskunft. 55 55 56 --DROP TABLE nutzung;57 56 CREATE TABLE nutzung ( 58 gml_id character(16),59 beginnt character(20), -- mehrfache gml_id eindeutig machen, Datenfehler?60 nutz_id integer, 61 class integer NOT NULL, -- NULL-Werte der Quelltabelle durch den num. Wert 0 ersetzen62 info integer,63 zustandinteger,64 "name" varchar,65 bezeichnung varchar,66 -- CONSTRAINT nutzung_pk PRIMARY KEY (gml_id), -- sollte so sein 67 CONSTRAINT nutzung_pk PRIMARY KEY (gml_id, beginnt), -- wÃŒrg arround (gml_id mehrfach!)68 CONSTRAINT 57 gml_id character varying NOT NULL, 58 beginnt character(20), -- mehrfache gml_id eindeutig machen 59 -- endet character(20), -- nur "ended IS NULL" kopieren 60 nutz_id integer, 61 class integer NOT NULL, -- NULL-Werte der Quelltabelle durch den num. Wert 0 ersetzen 62 info integer, 63 zustand integer, 64 "name" character varying, 65 bezeichnung character varying, 66 CONSTRAINT nutzung_pk PRIMARY KEY (gml_id, beginnt), 67 CONSTRAINT nutzung_meta_id FOREIGN KEY (nutz_id) 69 68 REFERENCES nutzung_meta (nutz_id) MATCH SIMPLE 70 69 ON UPDATE NO ACTION ON DELETE CASCADE … … 72 71 WITH (OIDS=FALSE); 73 72 74 -- ALTER TABLE nutzung ADD COLUMN beginnt character(20);75 -- ALTER TABLE nutzung DROP CONSTRAINT nutzung_pk;76 -- ALTER TABLE nutzung ADD CONSTRAINT nutzung_pk PRIMARY KEY(gml_id, beginnt);77 78 73 79 74 SELECT AddGeometryColumn('nutzung','wkb_geometry','25832','POLYGON',2); 80 -- Vereinzelt vorkommende MULTIPOLYGON, zulÀssig?75 -- Vereinzelt auch vorkommende MULTIPOLYGON 81 76 82 77 -- 'class' ist nur innerhalb einer Gruppe ein sinvoller Index … … 86 81 CREATE INDEX nutzung_geom_idx ON nutzung USING gist (wkb_geometry); 87 82 88 -- Kommentare89 83 COMMENT ON TABLE nutzung IS 'Zusammenfassung von 26 Tabellen des Objektbereiches "TatsÀchliche Nutzung".'; 90 84 COMMENT ON COLUMN nutzung.gml_id IS 'Identifikator, global eindeutig'; … … 99 93 -- Schluesseltabelle: classes innerhalb einer Nutzungsart. 100 94 -- Wird nicht aus NAS geladen sondern durch das manuell zu pflegende Script "nutzungsart_metadaten.sql" 101 102 103 --DROP TABLE nutzung_class;104 95 CREATE TABLE nutzung_class ( 105 96 nutz_id integer NOT NULL, … … 114 105 115 106 COMMENT ON TABLE nutzung_class IS 'SchlÃŒsseltabelle. Feinere Klassifizierung der zusammen gefassten Nutzungsarten.'; 116 --COMMENT ON COLUMN nutzung_class.ser IS 'Automatisches SchlÃŒsselfeld';117 107 COMMENT ON COLUMN nutzung_class.nutz_id IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle nutzung.'; 118 108 COMMENT ON COLUMN nutzung_class.class IS 'Key, SchlÃŒsselwert oder NULL'; … … 124 114 -- Da nun gml_id nicht mehr PRIMARY KEY der Ausgangstabellen ist , kommt es auch zu Doppelbelegungen der Zusammenfassung. 125 115 -- Diese FÀlle suchen. 126 127 -- SELECT a.gml_id, a.artderbebauung, a.ogc_fid, a.beginnt, b.ogc_fid , b.beginnt128 -- FROM ax_wohnbauflaeche a JOIN ax_wohnbauflaeche b ON a.gml_id = b.gml_id129 -- WHERE a.ogc_fid < b.ogc_fid LIMIT 100;130 131 116 CREATE OR REPLACE VIEW nutzung_mehrfache_gml AS 132 SELECT a.gml_id, 133 a.nutz_id, 134 a.beginnt as beginnt1, 135 b.beginnt as beginnt2 117 SELECT a.gml_id, a.nutz_id, a.beginnt as beginnt1, b.beginnt as beginnt2 136 118 FROM nutzung a 137 JOIN nutzung b 138 ON a.gml_id = b.gml_id 119 JOIN nutzung b ON a.gml_id = b.gml_id 139 120 WHERE a.beginnt < b.beginnt 140 121 --LIMIT 100
Note: See TracChangeset
for help on using the changeset viewer.