ভাল ওভারভিউ
সাধারণভাবে বলতে গেলে, আপনি দ্রুত পঠনের সময় (উদাহরণস্বরূপ, নেস্টেট সেট) বা দ্রুত লেখার সময় (সংলগ্ন তালিকা) এর মধ্যে সিদ্ধান্ত নিচ্ছেন। সাধারণত, আপনি নীচের বিকল্পগুলির সংমিশ্রণটি দিয়ে শেষ করেন যা আপনার প্রয়োজনগুলির সাথে সবচেয়ে উপযুক্ত। নিম্নলিখিতটি কিছু গভীরভাবে পাঠ সরবরাহ করে:
- আরও একটি নেস্টেড ইন্টারভাল বনাম অ্যাডজেসেন্সি তালিকার তুলনা : অ্যাডজেসেন্সি তালিকা, ম্যাটেরিয়ালাইজড পাথ, নেস্টেড সেট এবং নেস্টেড ইন্টারভাল এর সন্ধানের সেরা তুলনা ।
- শ্রেণিবদ্ধ তথ্য জন্য মডেল : ট্রেড অফস এবং উদাহরণ ব্যবহারের ভাল ব্যাখ্যা সহ স্লাইড
- মাইএসকিউএলে হায়ারারচি প্রতিনিধিত্ব করছে : বিশেষ করে নেস্টেড সেটের খুব ভাল ওভারভিউ
- আরডিবিএমএসে হায়ারার্কিকাল ডেটা : সর্বাধিক বিস্তৃত এবং সুসংগঠিত সংস্থাগুলি আমি দেখেছি, তবে ব্যাখ্যার পথে খুব বেশি কিছু নেই
বিকল্প
আমার সম্পর্কে এবং সাধারণ বৈশিষ্ট্য সম্পর্কে আমি সচেতন:
- সংলগ্ন তালিকা :
- কলাম: আইডি, প্যারেন্টআইডি
- কার্যকর করা সহজ।
- সস্তা নোড সরানো, সন্নিবেশ করানো এবং মুছে ফেলা।
- স্তর, পূর্বপুরুষ এবং উত্তরসূরিদের পথ খুঁজে পাওয়া ব্যয়বহুল
- তাদের সমর্থন করে এমন ডেটাবেজে সাধারণ টেবিল এক্সপ্রেশনগুলির মাধ্যমে এন + 1 এড়িয়ে চলুন
- নেস্টেড সেট (ওরফে মডিফায়েড প্রির্ডার ট্রি ট্রিভারসাল )
- কলাম: বাম, ডান
- সস্তা পিতৃপুরুষ, বংশধররা
O(n/2)
অস্থির এনকোডিংয়ের কারণে খুব ব্যয়বহুল চাল, সন্নিবেশগুলি, মোছা
- ব্রিজ টেবিল (ওরফে ক্লোজার টেবিল / ডাব্লু ট্রিগার )
- এর সাথে পৃথক যোগদানের টেবিল ব্যবহার করুন: পূর্বপুরুষ, বংশধর, গভীরতা (alচ্ছিক)
- সস্তা পিতৃপুরুষ এবং বংশধররা
O(log n)
সন্নিবেশ, আপডেট, মুছে ফেলার জন্য ব্যয় (সাবট্রি আকার) লিখেছেন- সাধারণ এনকোডিং: যোগদানের জন্য আরডিবিএমএস পরিসংখ্যান এবং কোয়েরি পরিকল্পনাকারীর পক্ষে ভাল
- নোড প্রতি একাধিক সারি প্রয়োজন
- বংশ কলাম (ওরফে ম্যাটেরিয়ালাইজড পাথ , পাথের গণনা)
- কলাম: বংশ (যেমন / পিতামাতা / শিশু / নাতি / ইত্যাদি ...)
- উপসর্গ ক্যোয়ারির মাধ্যমে সস্তা বংশধর (উদাঃ
LEFT(lineage, #) = '/enumerated/path'
) O(log n)
সন্নিবেশ, আপডেট, মুছে ফেলার জন্য ব্যয় (সাবট্রি আকার) লিখেছেন- সম্পর্কহীন: অ্যারে ডেটাটাইপ বা সিরিয়ালযুক্ত স্ট্রিং বিন্যাসের উপর নির্ভর করে
- নেস্টেড অন্তর
- নেস্টেড সেটের মতো, তবে আসল / ফ্লোট / দশমিক সহ যাতে এনকোডিংটি অস্থির হয় না (সস্তা চাল / সন্নিবেশ / মোছা)
- বাস্তব / ভাসা / দশমিক প্রতিনিধিত্ব / যথার্থ সমস্যা আছে
- ম্যাট্রিক্স এনকোডিং বৈকল্পিক "ফ্রি" এর জন্য পূর্বপুরুষের এনকোডিং (উপাদানযুক্ত পথ) যুক্ত করে, তবে রৈখিক বীজগণিতের যুক্ত কৌশল সহ।
- ফ্ল্যাট টেবিল
- একটি সংশোধিত অ্যাডজ্যাসেন্সি তালিকা যা প্রতিটি রেকর্ডে একটি স্তর এবং র্যাঙ্ক (যেমন ক্রম) কলাম যুক্ত করে।
- পুনরাবৃত্তি করা / প্যাগিনেটে সস্তা
- ব্যয়বহুল পদক্ষেপ এবং মুছুন
- ভাল ব্যবহার: থ্রেডেড আলোচনা - ফোরাম / ব্লগ মন্তব্য
- একাধিক বংশ কলাম
- কলাম: প্রতিটি বংশ স্তরের জন্য একটি, মূল পর্যন্ত সমস্ত পিতামাতাকে বোঝায়, আইটেমের স্তর থেকে নীচে স্তরগুলিকে NULL এ সেট করা হয়
- সস্তা পূর্বপুরুষ, বংশধর, স্তর
- সস্তার সন্নিবেশ, মুছুন, পাতার সরানো
- অভ্যন্তরীণ নোডগুলির ব্যয়বহুল সন্নিবেশ, মোছা, সরানো
- শ্রেণিবদ্ধতা কত গভীর হতে পারে তার সীমাবদ্ধতা
ডাটাবেস নির্দিষ্ট নোট
মাইএসকিউএল
আকাশবাণী
- অ্যাডজেন্সি তালিকাগুলি অতিক্রম করতে সংযুক্ত বাই ব্যবহার করুন
পোস্টগ্রি
- ধাতবীকৃত পথের জন্য ltree ডেটাটাইপ
SQL সার্ভার
- সাধারণ সংক্ষিপ্তসার
- ২০০৮ হায়ারারচিআইডি ডেটা টাইপ অফার করে লাইনেজ কলাম পদ্ধতির সাথে সহায়তা করে এবং প্রতিনিধিত্ব করতে পারে এমন গভীরতা প্রসারিত করে।
Closure Tables
areAdjacency List
Path Enumeration
Nested Sets