نقل قول: table relations در کیک
نقل قول:
نوشته شده توسط
zoghal
2- ما دو تا تیبل داریم
این کد ها همه رو واکشی میکنه مثلا اگر یک رکورد در تیبل photoblogs با ای دی 1 داشته باشیم و در تیبل photo هم 5 رکورد که با photoblog_id مرتبط هست رو هم واکشی میکنه
در صورتی که من فقط رکورد اولش رو می خوام
ممنون راهنمایی کنید
این سرسیعترین راهی که به ذهنم رسید، قول نمی دم بهترین باشه
$this->Photoblog->recursive = 1;
$this->Photoblog->bindModel(
array('hasMany' => array(
'photo' => array(
'className' => 'photo',
'limit' => '1'
)
)
)
);
$Photoblogs = $this->Photoblog->find('all');
$this->set('Photoblogs',$Photoblogs);
نقل قول: table relations در کیک
نقل قول:
نوشته شده توسط
zoghal
در کار با تیبل ها و کیک پی اچ پی با چیز هایی که دیدم ایمان آوردم
حالا دو تا سوال دارم،
1-hasAndBelongsToMany (HABTM) رو فهمیدم متها فکر مکنم اشتباه درک کرده باشم، این سیستم یا یک تیبل واسطه سیستم relastion و رول بک رو انجام میده؟ و روش دقیق پیاده سازیی چی هست؟
اگه میشه سوالت رو یکم واضحتر با جزئیات بپرس.تا بدونم دقیقا با کجاش مشکل داری.
نقل قول: table relations در کیک
مرسی در مورد سوال دوم هم خودم به bindModel رسیدم
اما سوال اول در روش hasAndBelongsToMany ، در این روش معلوم هست که یک تیبل با رابطه های n به n (ریلیشن) هست.
تو مثال ها دیدم که یک تیبل واسطه ایجاد میشه . این مورد رو میخواستم توضیح بدید
نقل قول: table relations در کیک
من شدیدا گیج شدم سر این نحوه ریلیشن ها
فرض کنید 4 تا تیبل داریم، که وابستگیشون به این صورت هست
تیبل 1 <--- تیبل 2 <--- تیبل 3 ---> تیبل 4
حالا ما در مدل تیبل 3 هستیم ، میخوام با یک find('alll') همه اطلاعات رو بدست بیارم؟ چطوری میشه؟ اینکا رو کرد؟
نقل قول: table relations در کیک
خوب تقریبا فهمیدم چی به چی هست، منتها موندم تو این موضوع که آیا بهتر نیست برای بیشتر تیبل ها از روش hasAndBelongsToMany استفاده کنیم؟
نقل قول: table relations در کیک
خوب امتحان ماهم تموم شد اومدیم.
استفاده ار HABTM برای تمام جدول هایی که نیاز به relation دارن درست مثل اینه که بگی من می خوام ماشین بخرم، حالا که اینطوره یکدفعه برم اتوبوس بخرم!!!
هر چیزی یک هزینه ای داره و باری رو به Application شما وارد می کته.به طور کلی در کار با جداولی که از رابطه HABTM استفاده می کنن به شدت دچار پیچیدگی میشین و همچنین از لحاظ سرعت به طور قابل ملاحظه ای (به دلیل ارتباط Many To Many) دچار افت میشین.
بهتره از هر کدوم از سه شیوه :
- hasOne(ارتباط یک به یک)
- hasMany(ارتباط یک به چند)
- hasAndBelongsToMany(ارتباط چند به چند)
در جای خودش استفاده بشه.