MYSQL:外键可以包含一个集合吗?

时间:2017-04-02 11:18:22

标签: mysql

我想在一个表中做一个外键,指向其他值的集合。

例如,我想做一个父表和一个子表。虽然每个家长应该包含所有他的孩子,并且每个孩子都应该包含他的父母。

所以我的问题是我可以在MySQL中这样做吗?如果是,我怎么能这样做,否则我可以使用什么;

2 个答案:

答案 0 :(得分:1)

如果我理解正确,这只是一个外键关系:

create table children as (
    childId int auto_increment primary key,
    parentId int not null,
    . . .
    constraint fk_children_parent foreign key (parentId) references parents(parentId)
);

这符合你的两个要求:

  • 每个父母应该包含其所有孩子
  • 每个孩子都应该包含其父级

如果你想要孩子为父母,你可以:

select parentId, group_concat(childId) as children
from children
group by parentId;

答案 1 :(得分:0)

外键定义了一个列(或列集合),用于强制执行两个表之间的关系。数据库服务器有责任强制执行此关系以确保准确的数据。外键的模型定义由父(主)表组成,该表包含一组唯一的数据,然后在子(外部)表中引用。

如需完整说明,请查看:http://www.sparxsystems.com/enterprise_architect_user_guide/12.1/database_engineering/foreignkeys.html