কিউজিআইএস-এ পোস্টজিআইএস-এর সাথে ওয়ান টু বহু সম্পর্ক hip


9

কিউজিআইএস-এ এক-একাধিক সম্পর্ক করতে পারে এমন কোনও সরঞ্জাম সম্পর্কে কি কেউ জানেন?

পোস্টজিআইএস ডাটাবেসে আমার ডেটা রয়েছে। আমি স্থানিক বা অ স্থানীয় টেবিলের সাথে সম্পর্কিত এবং এর বিপরীতে স্থানিক স্তরগুলি জিজ্ঞাসা করতে সক্ষম হতে চাই। আমি বিশ্বাস করি আর্কজিআইএস ৯.০ এর একটি উপায় ছিল যা এরকম কিছু করার অনুমতি দেয়।

উত্তর:


12

একটি স্থানিক টেবিল ব্যবহার করুন, যাকে বলা হয় locationএবং অন্য একটি স্থানিক টেবিল sample,। এটি স্থানিক করতে, একটি ভিউ বলা হয় location_sample। নীচের স্কিমা পোস্টজিআইএস ২.০ টাইপমোড সিনট্যাক্স ব্যবহার করছে:

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কিউজিআইএস বা আপনি যে কোনও জিআইএস ব্যবহার করছেন তা লোড করতে সক্ষম হওয়া উচিত । প্রত্যেককে sampleএকটি দিয়ে বরাদ্দ করুন location_nameএবং এটি সেই স্থানে উপস্থিত হবে। আপনি কিউজিআইএস ১.৮ ব্যবহার করছেন, বিবেচনা করার জন্য একটি অতিরিক্ত পদক্ষেপ রয়েছে । এই দর্শনটির জন্য "প্রাথমিক কী" হ'ল sid("নমুনা আইডি ভাবেন")।

আমি কিভাবে সেটআপ করেছেন বিদেশী কী মধ্যে locationএবং sampleহল:

  • যদি আপনি location_nameএমন কোনও নমুনায় টাইপ করেন যা বিদ্যমান নেই, বা ভুলভাবে টাইপ করা হয় (স্পেস, ড্যাশ, কেস, ইত্যাদি), এটি আপনাকে এটি ব্যবহার করতে দেয় না (যেমন, MATCH SIMPLE)
  • যদি আপনি একটি location( nameক্ষেত্রের) নাম পরিবর্তন করেন তবে তার সাথে সংযুক্ত সমস্ত নমুনাগুলি তাদের location_nameক্ষেত্রগুলি আপডেট করবে (যেমন, ON UPDATE CASCADE)
  • আপনি যদি একটি locationসারি মুছে ফেলেন তবে এর সাথে সংযুক্ত সমস্ত নমুনা মুছে ফেলা হবে (যেমন, ON DELETE CASCADE)

বিভিন্ন আচরণ পেতে বিদেশী কী সীমাবদ্ধতাগুলি পড়ুন, এটি আপনার পরিস্থিতির সাথে আরও ভাল মেলে।

এছাড়াও আপনি সংক্ষেপ করতে sampleসমষ্টিগত ফাংশন ব্যবহার করে, মত মান count, min, avg, ইত্যাদি, এবং এই একটি অনুরূপ স্থানিক দৃশ্য আছে। আপনি যদি আপনার অ-স্থানীয় টেবিলে সংখ্যাসূচক কলাম যুক্ত করেন তবে এটি সর্বাধিক অর্থপূর্ণ হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.