Adlı bir uzamsal tablo location
ve başka bir uzamsal olmayan tablo kullanın sample
. Mekansal yapmak için çağrılan bir görünüm kullanılır location_sample
. Aşağıdaki şema PostGIS 2.0 typmod sözdizimini kullanıyor:
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'e veya kullandığınız CBS'ye yükleme yapabilmeniz gerekir . Her birini a sample
ile atayın location_name
, o konumda görünür. QGIS 1.8 kullanıyorsanız, göz önünde bulundurmanız gereken ekstra bir adım vardır . Bu görünüm için "birincil anahtar" dır sid
("örnek kimliği" deyin).
Ben kurdum nasıl yabancı anahtarın arasında location
ve sample
geçerli:
location_name
Var olmayan veya yanlış yazılan bir örneğe (boşluklar, tire işaretleri, büyük / küçük harf vb.) yazarsanız, kullanmanıza izin vermez (ör. MATCH SIMPLE
)
location
( name
alanda) adını değiştirirseniz , ona bağlı olan tüm örnekler location_name
alanlarını güncelleyecektir (ör. ON UPDATE CASCADE
)
- bir
location
satırı silerseniz , ona bağlı tüm örnekler silinir (ör. ON DELETE CASCADE
)
Durumunuza daha uygun olabilecek farklı davranışlar elde etmek için yabancı anahtar kısıtlamalarını okuyun.
Ayrıca özetleyebilir sample
gibi toplama işlevlerini kullanarak değerleri count
, min
, avg
vb ve bu benzer bir mekansal görünümü olun. Bu, uzamsal olmayan tablonuza sayısal sütunlar eklerseniz en mantıklıdır.