B中对A.[产品编号]的foreign key引用不能同时为on delete cascade或者同时为on delete cascade ,只能一个为cascade,另一个为no action,如: alter table B add constraint fk_1 foreign key([父项产品编号]) references A([产品编号]) on update cascade on delete cascadealter table B add constraint fk_2 foreign key([产品编号]) references A([产品编号]) on update no action on delete no action
A表中有[产品编号],[产品名称],[产品规格],[产品单位],[产品类别],[产品单价]六字段
B表中有[父项产品编号],[子项产品编号],[组成数量]三个字段.我无法像[youngqp]朋友所说的那样,在B表中只留[子项产品编号],而把[父项产品编号]放入A表中,本来这两个表表达的意义就是不一样的;再者,B表中的某个[子项产品编号]通过怎样的方式到A表中找它的父亲? 最终B表中还得放入[父项产品编号]这个字段,用于说明该子项产品,它的父亲就是这个[父项产品编号].不知各位高手还有什么好的办法来设计这两张表? 这两张表的字段应该如何安排?
A表:--主键 产品编号 PK 唯一
[产品编号]
电脑
主板
内存条
显卡
显示器B表: pk 产品编号 唯一
[产品编号] [父项产品编号]
主板 电脑
显示器 电脑
显卡 主板
内存条 主板然后前台程序控制B表的[产品编号] [父项产品编号]来源于A表
,只能一个为cascade,另一个为no action,如:
alter table B add constraint fk_1 foreign key([父项产品编号]) references A([产品编号]) on update cascade on delete cascadealter table B add constraint fk_2 foreign key([产品编号]) references A([产品编号]) on update no action on delete no action
on delete cascade
是什么意思?