项目表
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表?项目和图像的关系是什么?多对多还是一对多? 问题是当我插入图像表时没有错误,但如果我从图像表中删除将出现错误(外键问题)。为什么会这样?如何从表中删除图像。
答案 0 :(得分:0)
通常,此类设置是items
和images
之间存在多对多关系。 item_image
允许您在任意次item
和任何image
之间设置关系。您在从image
表中删除时遇到问题,因为它与item_image
表中的行有关。您首先必须删除item_image
中包含该图像的任何关系,然后从image
表中删除该行。
数据库以这种方式设置,以便您的关系不会过时或孤立。如果从image
表中删除一行,但在item_image
中留下与已删除行相关的行,那么关系将指向任何内容并可能导致问题。
假设这是一种典型的多对多关系,如果您不了解数据库的结构,则应在进行任何更改之前与制作该数据库的人员进行交谈。
答案 1 :(得分:0)
如果我错了,请纠正我。根据数据库,这可能是多对多关系,因为在item_image
和items
之间创建了images
表。
因此,如果您要删除图片表中的项目,则首先必须检查id
和image
的{{1}}是否存储在item
中。如果它存在,那么您可以从item_image
id
表格image
中image_id
的图片