Verwenden Sie eine aufgerufene räumliche Tabelle location
und eine andere nicht räumliche Tabelle sample
. Um es räumlich zu machen, wird eine Ansicht namens aufgerufen location_sample
. Das folgende Schema verwendet die PostGIS 2.0-Typmod-Syntax:
CREATE TABLE location(
gid serial NOT NULL,
geom geometry(Point,4326),
name character varying(50) NOT NULL,
CONSTRAINT location_pkey PRIMARY KEY (gid),
CONSTRAINT name_unique UNIQUE (name)
);
CREATE INDEX location_geom_idx ON location USING gist (geom);
CREATE TABLE sample(
sid serial NOT NULL,
name character varying(50) NOT NULL,
location_name character varying(50),
CONSTRAINT sample_pkey PRIMARY KEY (sid),
CONSTRAINT location_name_fkey FOREIGN KEY (location_name)
REFERENCES location (name) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
);
CREATE INDEX fki_location_name_fkey ON sample USING btree (location_name);
CREATE VIEW location_sample AS
SELECT sample.sid, location.geom, sample.location_name, sample.name
FROM location
LEFT JOIN sample ON sample.location_name = location.name;
Sie sollten in der Lage sein, location_sample
QGIS oder das von Ihnen verwendete GIS zu laden . Weisen Sie jedem sample
ein zu location_name
, und es wird an dieser Stelle angezeigt . Wenn Sie QGIS 1.8 verwenden, müssen Sie einen zusätzlichen Schritt berücksichtigen . Der "Primärschlüssel" für diese Ansicht lautet sid
(denken Sie an "Beispiel-ID").
Wie ich den Fremdschlüssel zwischen location
und eingerichtet habe sample
:
- Wenn Sie ein
location_name
Beispiel eingeben, das nicht vorhanden ist oder falsch eingegeben wurde (Leerzeichen, Bindestriche, Groß- und Kleinschreibung usw.), können Sie es nicht verwenden (dh MATCH SIMPLE
)
- Wenn Sie a
location
(im name
Feld) umbenennen , aktualisieren alle damit verbundenen Beispiele ihre location_name
Felder (dh ON UPDATE CASCADE
)
- Wenn Sie eine
location
Zeile löschen , werden alle damit verbundenen Samples gelöscht (dh ON DELETE CASCADE
)
Informieren Sie sich über die Fremdschlüsseleinschränkungen, um unterschiedliche Verhaltensweisen zu erhalten, die möglicherweise besser zu Ihrer Situation passen.
Sie können auch zusammenfassen sample
Werte mit Aggregatfunktionen, wie count
, min
, avg
usw. und dies eine ähnliche räumliche Ansicht machen. Dies ist am sinnvollsten, wenn Sie Ihrer nicht räumlichen Tabelle numerische Spalten hinzufügen.