exchanging

استفاده نكردن از foreign key در فرم هاي اپن سورسي مثل phpbb و يا myBB و سي ام اس هايي

شروع موضوع توسط sasan_66 ‏23 فوریه 2008 در انجمن PHP

  1. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    سلام
    چرا توي فرم هاي اپن سورسي مثل phpbb و يا myBB و سي ام اس هايي مثل mambo از هيچ foreign key استفاده نشده؟
    مثلا توي phpbb يه جدوله categories وجوداره و يه جدوله forums كه ميشه گفت يه رابطه ي 1 به n وجود داره. ولي با اين حال هيچ FK داخل forums تعرف نشده. فقط فيلد cat_id كه كتگوري فرم رو مشخص ميكنه و به عنوان PK جدوله categories هستش توي جدوله forums به عنوان index تعريف كرده.
    آيا دليل خاصي براي اين كار وجود داره. در ضمن جدولاشم از نوع InnoDB هستش
     
  2. alik

    alik کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏23 سپتامبر 2005
    نوشته ها:
    2,148
    تشکر شده:
    1,226
    کلید خارجی همین رابطه هستش که برقراره لزوما نباید تعریف میکردند فقط رعایت کردند و در برنامه هم بر اساس همین رابطه ها (کلید های خارجی) برنامه را طراحی کردند ...
    کلا تمام ارتباط های جدول ها (اگر لازم باشه و وجود داشته باشه) بر اساس همین کلیدها برقرار میشه ولی لزوما نمیان توی mysql یا هر dbm دیگه ای تعریفش کنن بلکه فقط خودشان توی پیاده سازی استفاده و رعایت میکنند زمانی تعریف میکنند که میخوان dbm روی این کلید ها و رابطه ها قید ها را رعایت کنه و از مزیت ها و امکانات dbm استفاده کنند ...


    دلیل اینکه تعریف نکردند و نوع جدول ino هست من فکر میکنم اساس طراحی لزوما تعریف این نوع کلید را نمی طلبه میدانید که کاربردی هست ... اگر هم در ino تعریف میکردند یکسری قید هایی توسط mysql بوجود می امده که حتما مورد نظرشان نبوده ! پس میشه حدس زد اساس کار همان myisam بوده و بعدا به خاطر فرار از crash های myisam به سرعت و پایداری بیشتر ino در این نوع استفاده خاص یعنی forum پناه بردن ولی بقیه امکانات ino مد نظرشان نبوده و نیازی به قید های تعریف این نوع کلید نداشتن به همان بحث طراحی و پیاده سازی اکتفا کردن ...
     
  3. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    يودنش به نظر من دردسر هست با خود برنامه نويسيس چك كني بهتر ميشه و رعايت هم بايد بشه ولي اگه باشه خودش مي زنه يه كار هايي مه كنه خوب نيست
     
  4. amin_lili

    amin_lili کاربر تازه وارد

    تاریخ عضویت:
    ‏24 آپریل 2007
    نوشته ها:
    528
    تشکر شده:
    2
    محل سکونت:
    ای کاش آنجا ...
    تایید می شه . چنانچه توی کد و توسط خودمون رعایت بشه بهتره . چون یه جاهایی دردسر ساز میشه .
     
  5. hossein_asp

    hossein_asp کاربر تازه وارد

    تاریخ عضویت:
    ‏31 مارس 2005
    نوشته ها:
    637
    تشکر شده:
    0
    محل سکونت:
    جایی که خدا نباشد
    کلید خارجی یک درد سره به تمام معنا است که جز ارور چیزی در پی نداره مدیریتش موقع حذف رکورد به دلیل اینکه باید تمام رکورد های ارتباط داده شده حذف بشن سخته بهتر کلید خارجی تو فکر آدم باشه تا تو عمل.