برگزیده های پرشین تولز

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

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 هستش
 

alik

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


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

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
يودنش به نظر من دردسر هست با خود برنامه نويسيس چك كني بهتر ميشه و رعايت هم بايد بشه ولي اگه باشه خودش مي زنه يه كار هايي مه كنه خوب نيست
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
تایید می شه . چنانچه توی کد و توسط خودمون رعایت بشه بهتره . چون یه جاهایی دردسر ساز میشه .
 

hossein_asp

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