سلام. وقتی برای برنامه ای می نویسید که داده هاش رو از پایگاه داده می گیره، ممکنه لازم بشه برای داده هاتون دسته بندی قائل بشید. اگه یه سایت خبری داشتید، ممکنه دسته بندی مثل ایران، جهان، منطقه، سیاسی، اقتصادی و ... مد نظرتون باشه یا اگه یک برنامه ی فروشگاه یا حسابداری داشتید شاید خواستید محصولاتتون رو دسته بندی کنید. اگه دسته های مورد نظرتون تو در تو نبود که هیچی، اما اگه دسته بندی شما تو در تو بود، بدونید موضوع این پست ما همینه. چطور دسته های تو در تو برای برناممون به وجود بیاریم و توی کنترل های دات نت نشونشون بدیم؟

قبل از اینکه توضیح بدیم چطور این دسته ها رو باید نشون بدیم لازمه بدونیم که روش خاصی برای این کار نیست. همون طوری که برای یک مسئله ممکنه هزاران راه حل وجود داشته باشه، برای این مسئله هم راه های زیادی وجود داره. هر برنامه نویسی، بسته به کارش و طرز تفکرش یه جور این کارو انجام میده. ممکنه یک نفر بخواد دسته هاش رو به صورت XML در یه فایل درختی XML ذخیره کنه و بعدا بازیابیشون کنه یا ممکنه یه نفر به ازای تمام دسته هاش یک جدول توی پایگاه دادش به وجود بیاره! (دیدم که می گما!)
موضوع اینه که اکثر کسانی که این دسته بندی رو انجام میدن، از یه روش معمول و ساده به نتیجه می رسند. بزارید توضیح بدم روش معمول برای ذخیره کردن دسته های تو در تو در پایگاه داده چی هست. در پایگاه داده (Data Base) یک جدول بسازید به نام Category یا Categories. این جدول باید دارای حداقل 3 فیلد باشه. فیلد های ID، Name و ParentID رو توش بسازید. بعد از اون داده هاتون رو به این صورت وارد می کنید که اگر دسته ی شما در شاخه ی اصلی درخت (root) قرار داشت، ParentID اون باید صفر یا null باشه. حالا اگر دستتون، زیر مجموعه ی دسته ی دیگه ای بود، ParentID اون، میشه ID شاخه ای که والد اون مجموعه حساب میشه. برای شکل بغل دست همین مطلب چنین چیزی رو داریم :





"هدف این کتاب آموزش فکر کردن مثل یک خبره ی کامپیوتری است. این روش فکر کردن چند تا از بهترین خصوصیات ریاضیات، مهندسی و علوم طبیعی را در هم می آمیزد. همانند ریاضیدانان، مهندسین کامپیوتر از زبان خاصی برای پیاده سازی نظراتشان استفاده می کنند. مهندسین کامپیوتر چیزهایی طراحی می کنند، قطعات مجزایی را (کامپوننت) را به هم متصل می کنند و در آخر از میان مواد خام، چیزهای جدیدی بیرون می کشند. درست مانند مهندسین. و مانند دانشمندان شاهد رفتارهای سیستم های پیچیده هستند، نظریاتی شکل می دهند و پیشبینی هایشان را تست می کنند. 





مردی که زیاد می دانست!
«به یک نفر مسلط به تمامی نرمافزارهای گرافیکی نیازمندیم!» تا به حال چندبار به چنین جملهای (یا جملههای مشابه آن) در ستون نیازمندیهای روزنامهها و آگهیهای گوناگون برخوردهاید؟ جملهای که به رغم ظاهر نه چندان عجیب و غریبش، به تنهایی میتواند بیانگر خیلی از مشکلات آموزشی وانتظارات نادرست ما از آموزش در شاخههای گوناگون علوم کامپیوتر باشد...