سلام خدمت همه عزیزان
در مقاله ای با عنوان «کار با داده های سلسله مراتبی در پایگاه داده» اطلاعات مفیدی در مورد درختها کسب شد، اما مشکل من در مورد ارتباط بین چندین درخت است
مثلا 3درخت داریم (یا سلسله مراتب):
1 - کشور شامل: استانها، شهرهای هر استان، روستاهای هر شهر
2- دولت شامل: رئیس جمهور، وزیر، استاندارها، شهردارها و دهیارها
3 - تجهیزات شامل: تاسیسات گاز، تاسیسات برق، تاسیسات آبرسانی، ایستگاههای پمپاژ و ......
حالا میخواهیم بین این سه درخت ارتباط برقرار کنیم، مثلا شهر x دارای شهردار y و تاسیسات شهری z و w و ... است
چه روشهایی برای پیاده سازی بهینه این حالت میشه استفاده کرد
(تنها چیزی که مد نظرم هست ایجاد یک جدول مخصوص ریلیشن بین درختها هست)
سلام
روشی که ما برای این کار ازش استفاده میکنیم خیلی راحت باهاش بی نهایت زیر شاخه میسازیم!!!
شما یک جدول مثلا به اسم city میسازید، فیلد هاش شامل id, name, parentID و... باید باشه! حالا باید id رو بر روی parentID ایندکس کنید. اونی که شاخه اصلی هست parentID باید NULL باشه و باقی شاخه ها هم ID شاخه مادرشون رو میپذیرند (علت اصلی ایندکس کردن برای این هست که وقتی شاخه ای پاک میشه زیرشاخه های اون هم پاک بشه و رکورد اضافی باقی نمونه)
حالا در قسمت کد نویسی شما ابتدا میاید تمام ردیف ها رو بیرون میکشید و در یک آرایه جدید با این چهار چوب میریزید
foreach ($citys as $item) { $list[$item['parentID']][$item['id']] = $item; }
حالا که آرایه جدید براساس parentID مرتب شد باید به وسیله یک تابع بازگشتی که id رو دریافت میکنه و زیرشاخه ها رو در یک temp ذخیره میکنه درخت مورد نظر رو بسازید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)