mysql排他性关系可能性

时间:2015-04-22 12:41:27

标签: mysql sql database

mysql是否支持独占关系? 例如,我有3个表:CUSTOMER,FLAT,HOUSE。 CUSTOMER与FLAR xor HOUSE有关。

如果有可能在mysql中使用一个关系吗? 就像,CUSTOMER将有2个字段,一个与对象(FLAT或HOUSE)相关,一个是存储id。 我想检查数据库级别,这种关系不为空。不想为每个表创建外键(FLAT和HOUSE)。

感谢。

后来添加: 抱歉没有正确的解释。我不想为每个外键创建两个不同的列(到FLAT,到HOUSE)。我建议有类似于独占关系的东西,我为id创建了一列,它可以是表FLAT或HOUSE之一的外键

1 个答案:

答案 0 :(得分:0)

create table flat (
    id int auto_increment,
    primary key (id)
);
create table house (
    id int auto_increment,
    primary key (id)
);
create table customer (
    id int auto_increment,
    flat_id int,
    house_id int,
    primary key (id),
    index flat_id (flat_id),
    index house_id (house_id),
    foreign key (flat_id) references flat(id) on delete cascade,
    foreign key (house_id) references house(id) on delete cascade
);