SQL跨表约束

时间:2012-01-05 23:18:58

标签: mysql

考虑以下表格:

BOXES
box_id int
box_type enum('regular', 'special')

ITEMS
item_id int
item_type enum('regular', 'special')
item_box int (foreign key referencing box_id)

现在,有没有办法创建一个约束,只允许item_type special的商品属于box_type special的商品或属于item_type regular的商品属于商品box_type special

谢谢。

2 个答案:

答案 0 :(得分:0)

不确定mysql,但通常我认为您只需要一个引用框(item_type,item_box)的项(box_type,box_id)的外键。

答案 1 :(得分:0)

你的意思是在一个盒子里只有相同类型的物品。您必须在业务逻辑层中创建一些东西,据我所知,RDBMS无法生成这些内容。