কেন বেশিরভাগ জিআইএস প্যাকেজগুলির একটি সংখ্যামূলক আইডি দরকার?


11

এই সহজ এখনো সম্ভবত বিতর্কিত প্রশ্ন হচ্ছে, কেন অধিকাংশ (যদি না সব) জিআইএস প্যাকেজ প্রয়োজন যে একটি নির্ধারিত স্তর একটি অনন্য নয় nullable আছে সাংখ্যিক শনাক্তকারী?

কেন প্রাকৃতিকের পরিবর্তে এমন সরোগেট কীটির প্রয়োজন আছে?

উদাহরণ:

  • আর্কজিআইএস ওবিজেসিটিড প্রয়োগ করে (বা গ্লোবালআইডি)

  • কিউজিআইএস যখন কোনও সংখ্যামূলক আইডি না রাখে তখন স্তরগুলি লোড করে না।


8
একটি সম্ভাব্য ব্যাখ্যা: একটি সংখ্যাসূচক আইডি একটি অ-সংখ্যাসূচক আইডি থেকে অনেক কম বাইট নেয়। আপনি যখন বিভিন্ন টেবিলকে লিঙ্ক করা শুরু করেন তখন এটি আরও বেশি গুরুত্বপূর্ণ, যা সমস্ত আইডির একটি অনুলিপি সঞ্চয় করে।
johanvdw

+1 ভাল প্রশ্ন, আমি মনে করি না যে এসওএসকিউএলের জন্য সংখ্যা কীগুলি দরকার requires
কर्क কুইকেনডাল


@ ক্যাপ এটি সামান্য ফাঁক (এবং আপনি ইতিমধ্যে সেই লিঙ্কটি পোস্ট করেছেন)।
whuber

উত্তর:


6

কারণ তাদের একটি অনুকূলিত সূচকযোগ্য ক্ষেত্র থাকা দরকার। বারবার একটি স্ট্রিং ফিল্ড সূচী করতে আরও ওভারহেডের প্রয়োজন হয় এবং শেষ পর্যন্ত ঠিক তেমন দক্ষ হয় না।

ইএসআরআই আসলে এসইডিই বিশ্বে 'গ্লোবাল্ড' যা একটি জিইউইডি ক্ষেত্র সমর্থন করে তাই এটি 32Char ক্ষেত্র তবে তবুও কর্মক্ষমতা বাড়ানোর জন্য সূচিযুক্ত।


3
এটি একটি সংখ্যাসূচক আইডির দক্ষতার সুবিধার জন্য একটি ভাল ব্যাখ্যা। তবে আমি মনে করি @ জর্জ এর থেকে আরও গভীরভাবে তদন্ত করছে। প্রযুক্তিগতভাবে, আরডিবিএমএসগুলি সংখ্যাসূচক হওয়ার জন্য তাদের সনাক্তকারীদের প্রয়োজন হয় না, তবে জিআইএসেস কেন করা উচিত?
whuber

1
এখানে সমস্যা নিখুঁত নয়। একটি অননুমোদিত অনন্য কী এটি করবে। তবে এটি অবশ্যই সংখ্যাসূচক হবে? একবার আমি শুনেছি বা পড়েছি যে এটির সংখ্যা হওয়া দরকার কারণ এটি কীটি রেন্ডারিং নিয়ন্ত্রণের জন্য ব্যবহার করে ... ইএসআরআই থেকে আমাদের ওয়ার্ল্ডের মডেলিংয়ে ছিল?
জর্জ সিলভা

2
কারণ একটি জিআইএস কোনও আরডিবিএমএস নয়, যদিও এটি একটির ব্যবহার করতে পারে। একটি জিআইএসের সাধারণত কিছু নিয়ম এবং অনুমান থাকে, যেমন অনুমান করা হয় যে প্রাথমিক কীটি সূচকযুক্ত পূর্ণসংখ্যা বা জিআইডি হবে, পারফরম্যান্স এবং কোডিং স্যানিটির জন্য।
blah238

1
ঠিক আছে, তবে কেন একটি সংখ্যায়িত? একটি স্তর তৈরি করার সময় কেন আমরা আমাদের কী বেছে নিতে পারি না?
জর্জ সিলভা

1
আমি কল্পনা করলাম এর মূল কারণটি হ'ল এই অনুমানগুলি কোড লেখার কাজকে একটি জিআইএস প্যাকেজটিকে অনেক বেশি সহজ কাজ করে তোলে।
blah238

4

আপনি যদি কোনও স্তরে রেকর্ড যুক্ত করা শুরু করেন তবে আপনি ডিস্কে লেখার ঠিক আগে প্রতিটি নতুন বৈশিষ্ট্যের জন্য একটি অনন্য বর্ণমালা কোড প্রবেশকারী কোনও ব্যক্তির উপর নির্ভর করতে পারেন ..

.. অথবা আপনি একটি সাধারণ স্বতঃসংশোধক পূর্ণসংখ্যার ক্ষেত্রটি প্রয়োগ করতে পারেন।


4

অনেক লোক যেমন পরামর্শ দিয়েছেন, এটি সুবিধার প্রশ্ন; তবে সম্ভবত আরও গভীরভাবে এটি কনভেনশন।

প্রোগ্রামার হিসাবে, আমার প্রথম প্রবৃত্তিটি একটি লেয়ার আইডির জন্য একটি সংখ্যার কী ব্যবহার করা হবে কারণ এটি সর্বদা এভাবেই করা হয়েছে। প্রকৃতপক্ষে, আমার পক্ষে এমনকি সচেতন পর্যায়েও এটি ঘটতে পারে না, অন্য কোনও উপায়ে আমার এটি করা উচিত। অবশ্যই, যদি পূর্ণসংখ্যার ব্যবহার না করার কোনও প্রযুক্তিগত কারণ থাকে, তবে 32-বিটগুলিতে (খুব সম্ভবত সম্ভাব্য প্রস্তাব!) সংরক্ষণের চেয়ে আরও বেশি স্তর থাকার সম্ভাবনা থাকলে বা এর কোনও ব্যবসায়ের কারণ থাকলে, বলুন, তাহলে বিকল্প বিবেচনা করা হবে।

সংখ্যা কীগুলি সহ অ্যালগরিদমিক বিবেচনাও রয়েছে। বাছাই করা এবং সজ্জিত মানগুলির তালিকার সন্ধান শেষ পর্যন্ত দুটি সংখ্যার মধ্যে তুলনা করতে সিদ্ধ হয়, যদিও এটি স্ট্রিং বা জটিল বস্তুর তালিকা; তারা কেবল একটি হ্যাশিং ফাংশন দিয়ে সংখ্যায় পরিণত হয় । আধুনিক কম্পিউটারগুলিতে, 100 বা এমনকি 1000 আইটেমের একটি তালিকা অনুসন্ধান করা নিখুঁত-কার্যকর পদ্ধতির সাথে তত দ্রুত হয় যতটা এটি একটি উচ্চতর অনুকূলিতকরণিত অ্যালগরিদম সহ with জিআইএস-এর স্তরগুলির ক্ষেত্রে, আমি এমনকি 1000 টিরও বেশি মানচিত্রের জটিল জটিল চিত্রগুলি দেখতে পাচ্ছি না এবং এটির পরেও, অন্যান্য সংযুক্ত কম্পিউটারগুলি অপ্টিমাইজড থেকে কোনও ছোট লাভের চেয়ে দীর্ঘতার অর্ডার গ্রহণ করবে একটি সংক্ষিপ্ত তালিকা অনুসন্ধান।

পূর্ণসংখ্যা কীগুলি কোনও প্রোগ্রামারকে "ঠিক বুঝায়" এবং ব্র্যাড যেমন বলেছে, অ-সংখ্যাসূচক কীগুলি ব্যবহার করার জন্য আরও প্রচেষ্টা রয়েছে। সম্ভবত আরও কোড নয়, তবে আরও মানসিক প্রচেষ্টা, এবং আমরা অভ্যাসের অলস প্রাণী। এছাড়াও, একটি জিআইএস-এর স্তরের মতো অনন্যভাবে চিহ্নিত করা কীটি ব্যবহারকারীর কাছ থেকে "লুকানো" হিসাবে বিবেচিত হয়, যাতে তারা এটির সাথে বিভ্রান্ত না হয় এবং কোডটি ভঙ্গ করে যা তার স্বতন্ত্রতার উপর নির্ভর করে (ডিবি ইউনিক কীওয়ার্ডস না হলেও)। কারণ আপনি যদি কোনও ব্যবহারকারীকে যথেষ্ট দড়ি দেন, তাড়াতাড়ি বা পরে কেউ এটিকে নিজের সাথে ঝুলিয়ে রাখবে। ব্যবহারকারীর সম্পাদনযোগ্য ক্ষেত্রে সর্বদাই স্বতন্ত্রতা প্রয়োগ করুন, তবে অন্তর্নিহিত সিস্টেমটিকে অবশ্যই এর মূল কীটি অনন্য এবং অপ্রতিরোধ্য বলে ধরে নিতে হবে


ওপেনস্ট্রীটম্যাপ একটি প্রকল্প যে বেশী 32 বিট ইন্টিজার প্রয়োজন এক উদাহরণ। তারা bigintতাদের প্রাথমিক কীগুলির জন্য ব্যবহার করে ।
মাইক টি

উপায় / নোডের জন্য, হ্যাঁ। তবে মূল প্রশ্নটি একটি জিআইএসের স্তরগুলি সম্পর্কে ছিল।
মর্সিভিকিং

ওপেনস্ট্রিটম্যাপ জিআইএস স্তরগুলি সঞ্চয় করে।
জর্জ সিলভা

ওএসএম কেবল উপায় এবং নোডগুলি সঞ্চয় করে যার কী / মান ট্যাগ রয়েছে। এই ট্যাগগুলি বা অন্য কোনও কিছুর উপর ভিত্তি করে স্তরগুলির ধারণাটি নির্ধারণ করার জন্য এটি উপস্থাপনা সিস্টেম (যেমন ওপেনলায়ার্স) এবং রেন্ডারিং ব্যাকএন্ড (যেমন ম্যাপনিক, ওসমরেন্ডার) এর উপর নির্ভরশীল। তবে মাইক ঠিক বলেছেন, এটি bigintতার সমস্ত টেবিলের প্রাথমিক কীগুলির জন্য ব্যবহার করে ।
MerseyViking

এটি কনভেনশন সম্পর্কে উল্লেখ করার জন্য +1। এটি একটি সম্মেলন কারণ এটি আরও ভাল পারফরম্যান্সের সমান।
ক্যাপ্ট্রাডাগন

3

এই প্রশ্নটি মানুষের মতো (আমার মত) বিভ্রান্তিকর হয়ে উঠেছে যা জিনিসের ডেটাবেস-পাশ বিকাশ করে।

এটি ডাটাবেস স্টোরেজের কোনও সীমাবদ্ধতা নয়, কারণ পোস্টগ্রিএসকিউএল বিভিন্ন ডাটা টাইপের সমন্বিত প্রাথমিক কীগুলির সাথে সারণীগুলি সংজ্ঞায়িত করতে পারে, তবে এই সারণীগুলি কিউজিআইএসের মতো প্রোগ্রামগুলিতে লোড করা যায় না। সম্পর্কিত historicতিহাসিক নোটে, পোস্টগ্রেএসকিউএলকে একটি অভ্যন্তরীণ কী হিসাবে একটি ওআইডি কলামের প্রয়োজন হত যা একটি 32-বিট পূর্ণসংখ্যাও ছিল। সংস্করণ 7.2 পর্যন্ত এটির প্রয়োজন ছিল ।

32-বিট পূর্ণসংখ্যার আইডি প্রয়োজনীয়তা আসলে একটি প্রোগ্রামিং সীমাবদ্ধতা। একটি স্থির ডেটা টাইপ (32-বিট পূর্ণসংখ্যার) হিসাবে রেকর্ডের সেটগুলিতে একটি সূচক পাওয়া অনেক সহজ, এবং এটি এই রেকর্ডের জন্য প্রাথমিক কী হতেও সুবিধাজনক। কোনও প্রোগ্রামকে একটি যৌগিক প্রাথমিক কীটি মঞ্জুর করা এবং এটি একাধিক এবং / অথবা পৃথক পৃথক ডেটা ধরণের ভিত্তিতে একটি অনন্য রেকর্ড পুনরুদ্ধার করা আরও চ্যালেঞ্জক is তবে পোস্টগ্রিসকিউএল এর ওআইডি-র মতো বিকাশের সময়ের সাথে এই সীমাবদ্ধতাও কাটিয়ে উঠতে পারে। কিউজিআইএসের জন্য, [এখন] 5 বছরের পুরনো বাগটি কোনও দিন সমাধান করা হতে পারে (এখানে বিষয়টিতে সাম্প্রতিক কিছু আলোচনা করা হয়েছে)।


+1 ভাল বলেছেন। এটি একটি প্রোগ্রামিং সীমাবদ্ধতা হিসাবে আরও প্রমাণ হিসাবে, নোট করুন যে ESRI- এর দ্বারা আর্কভিউয়ের কোনও অভ্যন্তরীণ শনাক্তকারী ক্ষেত্রের প্রয়োজন ছিল না (বা ব্যবহার করা হয়নি) আর্কজিআইএস 8.x প্রকাশের আগে। পুরানো আরকভিউ আর্জিজিআইএস সঞ্চালিত সমস্ত ডাটাবেস ক্রিয়াকলাপে সক্ষম ছিল (এবং বাস্তবে তাদের অনেকের চেয়ে দ্রুত ছিল)।
whuber

2

ইএসআরআই এবং অন্যান্য জিআইএস সফ্টওয়্যারগুলিতে একটি ফোল্ডার বা ফাইলের সেট থাকা যা সাধারণ বৈশিষ্ট্য বর্গ বা ডেটাসেটে তৈরি করা সাধারণ।
যেমন আরকিনফো কভারেজ, শেফফিল, ফাইল জিওডাটাবেস।
এই ফাইলগুলির "সেট "গুলিকে অনেকগুলি জিআইএস ক্রিয়াকলাপের অনুমতি দেওয়ার জন্য সফ্টওয়্যার দ্বারা" যোগদান "হওয়া দরকার।
টেবিল, নেটওয়ার্ক, টপোলজিকাল নিয়ন্ত্রণগুলি আটকে দিন।
এটি ওআইডি এর উদ্দেশ্য এবং এটিকে অ-অযোগ্য, গোপন, সফ্টওয়্যার দ্বারা নিয়ন্ত্রিত করার কারণও।


আমি মনে করি জিআইএস অপারেশনগুলির সাথে এটির কিছু একটা থাকতে পারে, সত্যই। ছেদ করা, (স্থানিক) ইউনিয়নগুলি, পার্থক্য ইত্যাদি anyone কেউ কি আরও বিশদটি নিশ্চিত করতে বা উপস্থাপন করতে পারে?
জর্জ সিলভা

কীভাবে একটি একক এসডিই বৈশিষ্ট্য শ্রেণি আসলে ওরাকলের মতো একটি ডেটাবেজে সংরক্ষণ করা হয় তা একবার দেখুন। বৈশিষ্ট্যের জন্য একটি সারণী, জ্যামিতির জন্য একটি টেবিল, স্থানিক সূচকের জন্য একটি টেবিল, বৈশিষ্ট্য সূচকগুলির জন্য এক বা একাধিক টেবিল ইত্যাদি রয়েছে etc. সমস্ত এখনও আর্কভিউ 3.x এ থাকা
blah238

@ জর্জ - ব্লাহ 238 দ্বারা উল্লিখিত হিসাবে খুব কম জিআইএস অ্যাপ্লিকেশন রয়েছে যা উভয়ই (সমস্ত) তথ্য সংরক্ষণ করার জন্য একটি ফাইল ব্যবহার করে। যা প্যাকেজের উপর নির্ভর করে স্থানাঙ্ক, ব্যবস্থা, বৈশিষ্ট্য, নিয়ম, সম্পর্ক এবং আরও অনেক কিছু নিয়ে গঠিত হতে পারে। কোন স্থানের সারিটি কোন বৈশিষ্ট্য সারি, কোন নেটওয়ার্ক সারি, ইত্যাদি নিয়ে এগিয়ে যাওয়ার ট্র্যাক রাখতে সক্ষম হওয়াই আরও কাজ।
ব্র্যাড নেসোম

1
আমি দুঃখিত blah238, আমি সত্যিই মনে করি না কোডের পরিমাণ এই সমস্যাটিতে নির্ধারক ছিল। এনকোন্ডিং এর সাথে কিছু করার নেই। ডাটাবেসটি "গণিত" করবে এবং সিদ্ধান্ত নেবে যে অক্ষরের ক্রম সমান বা না, অতএব, PKEY প্রয়োগ করে। এটি সফ্টওয়্যার স্তর নেই not @ ব্র্যাড নেসোম: এটিও অর্থবোধ করে। তবে ওরাকল এবং পোস্টজিআইএস এ আপনি আপনার সমস্ত বৈশিষ্ট্য একটি একক টেবিলে সঞ্চয় করতে পারেন। আমি সম্মত হই যে শেফফিলসের জন্য ভয়ঙ্কর অবজেক্টআইডি দরকার ... এবং এটি স্ট্যান্ডার্ড সেট করে থাকতে পারে?
জর্জ সিলভা

@ জর্জি শেপফিলসের প্রয়োজন নেই বা সাধারণ নিয়ম হিসাবে কোনও অবজেক্টআইডি ব্যবহার করা হয়নি। সেই ওআইডি ফিল্ডটি আর্কজিআইএস ৮ এর সাথে প্রবর্তিত হয়েছিল তাই আমি সন্দেহ করি যে শেফফিলগুলির প্রশ্নের সাথে কোনও সম্পর্ক আছে।
whuber
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.