PDA

View Full Version : سوال: حذف زیر منو های یک منو با حذف منو اصلی



navid3d_69
پنج شنبه 25 آبان 1391, 00:07 صبح
سلام من منو های اصلی و زیر منو ها را در یک جدول قرار دادم که فیلد هاش این ها هستن

id , Name , Link , Parent_id

و اینجوری کار می کنه که منو اصلی Parent_id هاشون 0 هست و زیر منو های هر منو هم در Parent_id مقدار id منو اصلی رو ذخیره می کنه

حالا من می خوام اگر منو اصلی حذف شد تمام زیر منو ها هم باهاش حذف بشه باید چی کار کنم؟

Unique
پنج شنبه 25 آبان 1391, 23:58 عصر
اگه فکر میکنین با یک دستور sql میتونین این کار را بکنین غلطه و نمیشه . چون منو ساختار درختی داره و ممکنه چند سطح والد و فرزند داشته باشه ! برای این کار باید از طریق یک تابع بازگشتی عمل کنیدو از پائین ترین سطح حذف کنید بیاین بالا ،لبته میتونی با تابع بازگشتی همه id ها را بدست بیارین و با یک delete حذف کنید که زیاد sql ننویسید !

blackboy
جمعه 26 آبان 1391, 11:37 صبح
شما میتونی در دوتا جدول این کار رو انجام بدی مثلا یک جدول برای منوهای اصلی با فیلد های Id , Name
و یک جدول برای زیر منو ها با فیلد های Id ,Parent_id , Name
حالا یک کلید خارجی برای جدول مادر تعریف کنید که وقتی اون منوی اصلی رو پاک کردید توی جدول زیر منو ها هرجایی که آدی پرنت برابر باشه با اون حذف میشه

Unique
جمعه 26 آبان 1391, 23:15 عصر
حالا یک کلید خارجی برای جدول مادر تعریف کنید که وقتی اون منوی اصلی رو پاک کردید توی جدول زیر منو ها هرجایی که آدی پرنت برابر باشه با اون حذف میشه

حالا اگه زیر منو خودش زیر منو داشت چی ؟