PDA

View Full Version : مشکل در تعریف ارتباطات



barname_newis
یک شنبه 21 اردیبهشت 1393, 18:05 عصر
سلام
من تو پروژم (قسمت محصولات) با چند جدول ارتباط دارم
حالا که میخوام یک محصول رو حذف کنم خطا میده که نمیشه این محصول رو حذف کنم خطای sql هم اینه :


#1451 - Cannot delete or update a parent row: a foreign key constraint fails (`shoping_cart`.`products_has_product_categories`, CONSTRAINT `fk_products_has_product_categories_products1` FOREIGN KEY (`products_product_id`) REFERENCES `products` (`product_id`) ON DELETE N)


دلیلش هم اینه که برای پیاده سازی بخش شاخه های هر محصول از جدول میانی استفاده کردم چون ممکنه هر محصول چند شاخه داشته باشه (رابطه m * n)
کد بخش ارتباطات مدل products :


public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'comments' => array(self::HAS_MANY, 'Comments', 'products_product_id'),
'productAttributeFeatures' => array(self::HAS_MANY, 'ProductAttributeFeatures', 'products_product_id'),
'productImagesProductImage' => array(self::BELONGS_TO, 'ProductImages', 'product_images_product_image_id'),
'productFeaturesProductFeature' => array(self::BELONGS_TO, 'ProductFeatures', 'product_features_product_feature_id'),
'productCategories' => array(self::MANY_MANY, 'ProductCategories', 'products_has_product_categories(products_product_ id, product_categories_product_category_id)'),
);
}



من باید قبل از عمل حذف یا آپدیت محصولاتم چکار کنم که به خطا نخورم؟
ممنون

barname_newis
یک شنبه 21 اردیبهشت 1393, 18:28 عصر
فکر میکنم مشکل من تو تعریف نوع ارتباط هست (cascate ) چون من از دیتابیس رو دستی تعریف کردم و حتما در زمان ساخت دیتابیس به این موضوع دقت نکردم
الان برای تغییر نوع ارتباط این سه جدول (جدول های products و product_categories و جدول میانی بین این دو) تو phpmyadmin باید چیکار کنم؟
تغییر خاصی هم لازمه که تو کد های yii بوجود بیارم؟