Header Ads

Header ADS

Laravel Migration Column nestedSet

 

🔍 ব্যাখ্যা: $table->nestedSet(); কী করে?

এই লাইনটি Kalnoy/Nestedset নামে পরিচিত Laravel এর একটি প্যাকেজের ফাংশন। এই প্যাকেজটি একটি efficient structure দেয় যাতে parent-child relationship (e.g., folders inside folders) রাখা যায়।

এই কমান্ডটি মূলত নিচের মত ৩টি কলাম তৈরি করে:


$table->unsignedInteger('_lft'); $table->unsignedInteger('_rgt'); $table->unsignedBigInteger('parent_id')->nullable();

এগুলো মিলিয়ে একটা Nested Set Tree Structure তৈরি করে।


🗂 উদাহরণ: কেন এটা দরকার?

ধরো তুমি এমন একটা ফাইল ম্যানেজমেন্ট সিস্টেম বানাচ্ছো যেখানে:

  • "Root Folder"

    • "Folder A"

      • "Subfolder A1"

      • "Subfolder A2"

    • "Folder B"

      • "Subfolder B1"

এই ধরণের multi-level folder structure যদি তুমি traditional parent_id দিয়ে রাখো, তাহলে query করতে হলে recursion বা multiple joins লাগবে।

Nested set structure ব্যবহার করলে এই পুরো tree একসাথে query করা যায় খুব efficiently।


🧩 কোথা থেকে আসে $table->nestedSet()?

এই ফাংশন Laravel default migration এ থাকে না। এটা আসে এই প্যাকেজ থেকে:


composer require kalnoy/nestedset

এই প্যাকেজ install করা থাকলে তুমি $table->nestedSet() ব্যবহার করতে পারো।


✅ সারাংশ:

বিষয়ব্যাখ্যা
$table->nestedSet()একটি helper method যা _lft, _rgt, এবং parent_id কলাম তৈরি করে
উদ্দেশ্যHierarchical data structure (like folder trees) efficiently store ও query করার জন্য
প্রয়োজনীয় প্যাকেজkalnoy/nestedset
Alternativeনিজে হাতে parent_id দিয়ে recursive query করা (slow & complex)

No comments

Theme images by fpm. Powered by Blogger.