एक स्थानिक तालिका का उपयोग करें, कहा जाता है location
, और एक अन्य गैर स्थानिक तालिका sample
,। इसे स्थानिक बनाने के लिए, एक दृश्य का उपयोग किया जाता है location_sample
। नीचे दिए गए स्कीमा PostGIS 2.0 टाइपमॉड सिंटैक्स का उपयोग कर रहा है:
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;
आपको location_sample
QGIS या आपके द्वारा उपयोग किए जा रहे GIS में लोड करने में सक्षम होना चाहिए । प्रत्येक के sample
साथ असाइन करें location_name
, और यह उस स्थान पर दिखाई देगा। यदि आप QGIS 1.8 का उपयोग कर रहे हैं, तो विचार करने के लिए एक अतिरिक्त कदम है । इस दृश्य के लिए "प्राथमिक कुंजी" sid
(सोचें "नमूना आईडी") है।
मैं कैसे सेट अप किए गए विदेशी कुंजी के बीच location
और sample
है:
- यदि आप एक
location_name
ऐसा नमूना टाइप करते हैं जो मौजूद नहीं है, या गलत तरीके से टाइप किया गया है (रिक्त स्थान, डैश, केस, आदि), तो यह आपको इसका उपयोग करने की अनुमति नहीं देगा (यानी, MATCH SIMPLE
)
- यदि आप
location
( name
फ़ील्ड में) का नाम बदलते हैं , तो इससे जुड़े सभी नमूने अपने location_name
फ़ील्ड (यानी, ON UPDATE CASCADE
) को अपडेट कर देंगे
- यदि आप एक
location
पंक्ति हटाते हैं , तो इससे जुड़े सभी नमूने हटा दिए जाएंगे (यानी, ON DELETE CASCADE
)
विभिन्न व्यवहारों को प्राप्त करने के लिए विदेशी प्रमुख बाधाओं पर पढ़ें, जो आपकी स्थिति से बेहतर मेल खा सकते हैं।
तुम भी संक्षेप कर सकते हैं sample
कुल कार्यों का उपयोग कर, की तरह मान count
, min
, avg
, आदि, और यह एक समान स्थानिक दृश्य बनाते हैं। यदि आप अपने गैर-स्थानिक तालिका में संख्यात्मक कॉलम जोड़ते हैं तो यह सबसे अधिक समझ में आता है।