PHP.30-TP框架商城应用实例-后台6-商品会员价格删除-外键,级联操作

商品会员价格删除

需求:当删除一件商品时,这件商品对应的会员价格也应该从会员价格表{price,level_id,goods_id}中删除掉。

有两种删除方法

1、在钩子函数_before_delete()中删除会员价格【不需修改表结构】

根据商品id(goods_id)进行更改

2、可以使用MYSQL中自带外键约束来实现{级联删除}【前提:只有InnoDB引擎支持】

  数据库外键详解

外键约束和级联操作【级联操作(on delete|on action|on update):当主表更改时,从表(具有外键)跟从更改】

给p39_member_price添加外键格式:

  alter table 表名 add constraint 外键名 foreign key (外键字段) references 关联表名 (关联字段) [级联操作];

 ALTER TABLE p39_member_price ADD CONSTRAINT mprice_goods FOREIGN KEY (goods_id) REFERENCES p39_goods (id) ON DELETE CASCADE;

  或可建表时添加:建表语句

drop table if exists p39_member_price;
create table p39_member_price
(
    price decimal(10,2) not null comment '会员价格',
    level_id mediumint unsigned not null comment '级别Id',
    goods_id mediumint unsigned not null comment '商品Id',
    foreign key(goods_id) references p39_goods(id) on delete cascade,
    key level_id(level_id),
    key goods_id(goods_id)
)engine=InnoDB default charset=utf8 comment '会员价格';

  

 

 

 

 

 

 

posted on 2017-06-09 15:06  子轩非鱼  阅读(213)  评论(0编辑  收藏  举报

导航