/
  • مشکل در تیبل بندی و ارتباط بین رکورد ها !

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل در تیبل بندی و ارتباط بین رکورد ها !
    نویسنده پیام
    niman2d آفلاین
    عضو جدید
    **

    ارسال‌ها: 46
    تاریخ عضویت: ۱۳۸۹ تير ۸
    اعتبار: 0
    تشکرها : 25
    ( 25 تشکر در 19 ارسال )
    ارسال: #1
    Sad مشکل در تیبل بندی و ارتباط بین رکورد ها !
    سلام دوستان ، خسته نباشید ،
    یک سیسیتم دارم مینویسم که مربوط میشه به بازاریابی برای فروش کتاب و اینجور اجناس ،
    به یک مشکل برخوردم ، اول توضیح میدم که سیستم چیه تا بعد مشکل رو مطرح کنم . . .
    این سیستم سمت کاربر فعلاً چیزی نداره یعنی همه چیز عملاً دست مدیر هست ( تعریف کاربر ، حذف و هر کار دیگه )
    حالا در این سیستم بازاریابی ( که شبیه سیستم های هرمی هست ) 10 مرحله داریم ، هر یوزر میتونه 10 نفر رو معرفی کنه و همینطور هر زیرمجموعه هم میتونه 10 نفر رو معرفی کنه و الی آخر . . .
    خُب برای این قسمت دوتا تیبل تعریف کردم :

    users-->Name,Email....,Sub1,Sub2...Sub2,Num_Sub
    sub_Users-->inviter_ID,user_ID
    خُب ، تیبل اول که مشخصات همه کاربران هست ، SubX هم میشه زیر مجموعه ها از 1 تا 10 کاربر و num_sub هم تعداد زیر مجموعه هاش !
    sub_users هم که شناسه دعوت کننده ، شناسه خود یوزر . . .



    حالا تا اینجا مشکلی نیست ، حالا نیاز هست مثلا کاربری با شماره 11110 رو از بانک اطلاعاتی فرابخونیم و بعد از اون 10 زیر مجموعش رو هم بخوایم ، تا اینجا میایم فقط از تیبل Users اطلاعات رو میخونیم
    اما حالا میخوایم همین کاربر با یوزرهای سطح 1 و سطح 2 اون رو فراخونی کنیم
    ( یعنی هم زیر مجموعه های خود یوزر و هم زیر مجموعه های زیرمجموعه هاش رو . . )


    من در این دو موضوع مشکل دارم ، اینکه مثلا چطور میتونم زیر مجموعه های سطح 1 تا n ، کاربر رو فراخونی کنم و نمایش بدم ، و دوم اینکه چطور تعیین کنم مثلا n تا کاربر در سطح 1 دارم ، n تا در سطح 2 ، n تا در سطح 3 . . .

    من هرطور هم که فکر کردم که از اول شروع کنم و تیبل بندی رو تغییر بدم ، به روش صحیحی برای تیبل ها نرسیدم .


    ممنون میشم راهنمایی کنید .
    سپاس
    ۱۳۸۹ مرداد ۱۶ ۰۷:۲۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    nasserghiasi آفلاین
    ناصر GH
    ***

    ارسال‌ها: 242
    تاریخ عضویت: ۱۳۸۸ آذر ۷
    اعتبار: 2
    تشکرها : 127
    ( 41 تشکر در 22 ارسال )
    ارسال: #2
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    اولا در طراحی جدول مشکل داری و با افزونی داده مواجه خواهی شد.
    به جای sub1 sub2 sub... می تونی یک فیلد داشته باشی که شماره های زیرمجموعه ها بصورت آرایه توش ذخیره بشن.
    ولی در مورد سوالت باید بگم که باید از حلقه استفاده کنی
    مثلا حلقه رو تا 3 مرحله زیرمجموعه ادامه بدی
    برای مثال اول کاربری رو انتخاب می کنی و زیر مجموعه های اون رو از دیتابیس فراخوانی می کنی. در مرحله اول زیرمجوعه های زیرمجموعه های کاربر رو توسط یک حلقه فراخوانی می کنی و بعد توسط حلقه دوم که داخل حلقه اول هست زیر مجموعه های زیرمجموعه های زیرمجموعه های کاربر رو بدست میاری
    البته روش های بهتری هم هست.. یعنی اگر یکم بیشتر فکر کنی کارت با یک حلقه حل می شه
    ۱۳۸۹ مرداد ۱۷ ۰۲:۰۳ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : niman2d zoghal
    niman2d آفلاین
    عضو جدید
    **

    ارسال‌ها: 46
    تاریخ عضویت: ۱۳۸۹ تير ۸
    اعتبار: 0
    تشکرها : 25
    ( 25 تشکر در 19 ارسال )
    ارسال: #3
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    سلام ،
    ممنونم که پاسخ دادید ،
    حقیقتش اینکه متوجه موضوع « به جای sub1 sub2 sub... می تونی یک فیلد داشته باشی که شماره های زیرمجموعه ها بصورت آرایه توش ذخیره بشن. » اصلا نشدم ، ممنون میشم با این موضوع آشنام کنید .

    --- منظورتون این هست که تعداد اعضا رو مثلا در یا آرایه بریزم بعد اون آرایه رو در یک فیلد جای بدم ؟ و هر دفعه که خواستم زیر مجموعه جدید اضافه کنم ، آرایه رو فرابخونم ، بهش اضافه کنم و وارد دیتابیس کنم ؟

    بحث حلقه هم من با 3 تا حلقه سعی کردم ،
    حلقه اول : به تعداد زیر مجموعه های یوزر مورد نظر انجام میشه
    حلقه دوم : به تعداد اینکه چند Level رو لازم داریم تکرار میشه ( مثلا 2 یا 3 لول زیر مجموعه )
    حلقه سوم : به تعداد زیر مجموعه های زیرمجموعه تکرار میشه



    اما به نظرم بهینه نیست . . . و کاملاً گیج کننده شده !
    واقعا ممنونم از کمکتون
    سپاسگذارم
    (آخرین ویرایش در این ارسال: ۱۳۸۹ مرداد ۱۷ ۱۱:۲۴ صبح، توسط niman2d.)
    ۱۳۸۹ مرداد ۱۷ ۰۵:۲۲ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    faghani آفلاین
    عليرضا فغاني
    ****

    ارسال‌ها: 341
    تاریخ عضویت: ۱۳۸۸ مرداد ۲۲
    اعتبار: 4
    تشکرها : 255
    ( 85 تشکر در 61 ارسال )
    ارسال: #4
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    من که بهت توضیح دادم!!!!Big Grin
    خودمم Newjustsend

    بیا یاهو بهت بگم....Wink
    ۱۳۸۹ مرداد ۱۷ ۱۰:۵۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,697
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6198 تشکر در 3439 ارسال )
    ارسال: #5
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    خب اینجا بگید تاپیک ناتموم نمونه
    ۱۳۸۹ مرداد ۱۸ ۰۸:۵۳ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : zoghal niman2d
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,766
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #6
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    برای اینگونه سیستم ها شما باید از ساختار درختی استفاده کنید.
    بدین صورت که هر نود که وارد سیستم میشه باید مشخصات نود پدرش رو داشته باشه

    کد:
    tree [id,parent_id,other fields]


    این ساختار برای کارهای کوچیک خوب هست اما برای کار های بزرگ و ساختار درختی با عمق N بهتره از روش BTree استفاده بشه که الگوریتم معروف در این زمینه hierarchical-data هست که لینک زیر کامل توضیح داده این موضوع رو

    نقل قول: http://dev.mysql.com/tech-resources/arti...-data.html
    ۱۳۸۹ مرداد ۱۸ ۰۵:۳۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : niman2d
    niman2d آفلاین
    عضو جدید
    **

    ارسال‌ها: 46
    تاریخ عضویت: ۱۳۸۹ تير ۸
    اعتبار: 0
    تشکرها : 25
    ( 25 تشکر در 19 ارسال )
    ارسال: #7
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    (۱۳۸۹ مرداد ۱۷ ۱۰:۵۶ عصر)faghani نوشته شده توسط:  من که بهت توضیح دادم!!!!Big Grin
    خودمم Newjustsend

    بیا یاهو بهت بگم....Wink

    سلامBig Grin
    آره خُب ، اما یک مشکلی پیش اومد ، حالا باهات صحبت میکنم :دی Heart
    (۱۳۸۹ مرداد ۱۸ ۰۵:۳۱ عصر)zoghal نوشته شده توسط:  برای اینگونه سیستم ها شما باید از ساختار درختی استفاده کنید.
    بدین صورت که هر نود که وارد سیستم میشه باید مشخصات نود پدرش رو داشته باشه

    کد:
    tree [id,parent_id,other fields]


    این ساختار برای کارهای کوچیک خوب هست اما برای کار های بزرگ و ساختار درختی با عمق N بهتره از روش BTree استفاده بشه که الگوریتم معروف در این زمینه hierarchical-data هست که لینک زیر کامل توضیح داده این موضوع رو

    نقل قول: http://dev.mysql.com/tech-resources/arti...-data.html

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

    سپاس
    (آخرین ویرایش در این ارسال: ۱۳۸۹ مرداد ۲۰ ۰۱:۰۶ عصر، توسط niman2d.)
    ۱۳۸۹ مرداد ۲۰ ۱۲:۲۰ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    zoghal آفلاین
    صالح سوزنچی
    *****

    ارسال‌ها: 1,766
    تاریخ عضویت: ۱۳۸۷ دي ۲۵
    اعتبار: 23
    تشکرها : 1500
    ( 1729 تشکر در 992 ارسال )
    ارسال: #8
    RE: مشکل در تیبل بندی و ارتباط بین رکورد ها !
    لینک براتون گزاشتم که هم کد و هم طراحی دیتا بیس رو توضیح داده؟ من چیو توضیح بدم؟
    ۱۳۸۹ مرداد ۲۰ ۰۶:۳۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS