ساختار درختی

masima

Member
خیلی ممنونم.
یک رابطه کتگوری با خودش رابطه بازگشتی داره تا بتونه زیر انجمن درست کنه
در مورد رابطه کتگوری یک مثال میزنم ببینید درست متوجه شم یا نه؟ اگر که نه، پس میشه واضح تر توضیح بدید؟
یعنی مثلا یک فروشگاه اینترنتی دارای محصولات زیر باشد:
1- محصولات لوح فشرده
*موسیقی - *بازی های رایانه ای ---> + بازی های 3 بعدی +بازی های 2 بعدی

2- کتاب
*کتاب تاریخی - *کتاب معارف - *کتاب علمی ---> +دانش فضا +دانش پزشکی

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

اگه یک منبع مناسب هم معرفی نمایید خیلی بیشتر سپاسگزارم
 

farik

Well-Known Member
باسلام..
من اگه خودم بود برای اینکار از یک ستون در دیتا بیس کمک میگرفتم....این که راحت ترین روشه..ولی خوب یک روش دیگه هم هست و اونم اینه که شما بیاین و یک ستون تعریف کنین که داخلش ارتباطات رو بریزین..باز هم مثل قبلیه این روش ولی فرقش اینه که در این روش دقیقا موضوعات به هم مربوط میشن ..بزارین با یک مثال توضیح بدم..
فرض کنین شما واسه تیتر index در دیتا بیس id 1...برای طراحي سايتهاي اينترنتي ایدی 2 و...
اونوقت شما برای مباحثی که تو بخش سوالات و پاسخ ها ایجاد میشه بک فیلد میشازید..توش مینویسین:1->2->4...
بعد با استفاده از کوئری های ادغامی از دو تا تیبل ایدی هایی که لازم دارین از دیتا بیس میگیرن و replace میکنین..
موفق باشید..
 

masima

Member
با سلام و تشکر
من اگه خودم بود برای اینکار از یک ستون در دیتا بیس کمک میگرفتم....این که راحت ترین روشه..
یعنی چجوری؟

یک روش دیگه هم هست و اونم اینه که شما بیاین و یک ستون تعریف کنین که داخلش ارتباطات رو بریزین..باز هم مثل قبلیه این روش ولی فرقش اینه که در این روش دقیقا موضوعات به هم مربوط میشن ..بزارین با یک مثال توضیح بدم..
فرض کنین شما واسه تیتر index در دیتا بیس id 1...برای طراحي سايتهاي اينترنتي ایدی 2 و...
اونوقت شما برای مباحثی که تو بخش سوالات و پاسخ ها ایجاد میشه بک فیلد میشازید..توش مینویسین:1->2->4...
بعد با استفاده از کوئری های ادغامی از دو تا تیبل ایدی هایی که لازم دارین از دیتا بیس میگیرن و replace میکنین..
در مورد آیدی که اشاره کردین؛ چند تا چراغ تو ذهنم روشن شد ؛ البته نه به این صورت که گفتید ؛ در حال حاضر از نظر منطقی میتونم جایگاه یک گره فرزند در هر سطحی که باشد رو مشخص کنم ؛ ولی هنوز به این نتیجه نرسیدم که آیا نیاز به تعریف جدول در هر سطحی هست یا نه ؛ مثل همونی که قبلا گفته بودم مثلا یک جدول برای کتاب ؛ یک جدول برای کتاب پزشکی و ...
یعنی باید برای گره های فرزند هر گره جدول ایجاد کنم یا اصلا نیازی به این کار نیست و با داشتن یک جدول (منظورم گره ریشه) به تنهایی همه نیازم برطرف میشه ؟
من دنبال یک روش درست و اصولی هستم نه یک جور دور زدن مسئله ! واقعا داشتن اططلاعات درست برام ضروریه !

بعضی افزونه هایی در این باره وجود داره که بهشون دسترسی ندارم ؛ اگه کسی داره ، ممکنه اون رو در اختیارم بذاره یا میتونه بگه توی اون ها جدول ها چجوری تعریف شدن؟
 

ziXet

مدیر انجمن PHP/MYSQL
شما با دوتا رابلطه(جدول) میتونید این کارو انجام بدید.
یک جدول برای خود موجودیت(مثلا کتاب) و یک جدول هم برای ارتباط حدول اولی با خودش
 

masima

Member
اونوقت اگه بخوام دیتابیس به صورت پویا ایجاد شه، باید چطوری ساختار درختی ش رو تعریف کنم؟
 

جدیدترین ارسال ها

بالا