items table
protected static $_properties = array(
'id',
'product_code',
'item_color_id',
'item_size_type_id',
'classification_id',
'name',
'display_name',
'usual_price',
'selling_price',
'point_ratio',
'description',
'publish_start_datetime',
'publish_end_datetime',
'publish_flag',
'created_at',
'updated_at',
'deleted_at',
);
图像表:
protected static $_properties = array(
'id',
'file_name',
'content_type',
'created_at',
'updated_at',
'deleted_at'
);
item_image表:
protected static $_properties = array(
'id',
'item_id',
'image_id',
'type',
'view_order'
);
为什么需要item_image表?物品和图像的关系是什么?多对多还是一对多?问题是,当我插入到图像表没有错误,但如果我从图像表中删除会有一个错误(外键问题)。为什么会发生这种情况?如何从表中删除图像
通常这种设置是在items
和images
之间具有多对多关系。item_image
允许您设置任何item
和任何image
之间的关系,任何次数。从image
表中删除时遇到麻烦,因为它与item_image
表中的一行相关。首先必须删除item_image
中包含该图像的所有关系,然后从image
表中删除该行。
数据库是这样设置的,这样你的关系就不会过时或孤立。如果您从image
表中删除了一行,但在item_image
中保留了与被删除的行相关的行,那么这种关系将指向任何东西,并可能导致问题。
这是假设这是一个典型的多对多关系,如果你不知道数据库的结构,你应该在做任何改变之前和做它的人谈谈。
如果我说错了请指正。根据数据库,这可能是一个多对多的关系,因为items
和images
之间创建了一个item_image
表。
所以如果你想从图像表中删除一个项目,那么首先你必须检查image
和item
的id
是否都存储在item_image
中。如果它存在,那么你可以从你的image_item
image
表中id
= image_id
的图像。