2017-04-02 119 views
1

我想在一个表中创建一个外键,它将指向其他值的集合。MYSQL:外键可以包含一个集合吗?

例如我想做一个父表和一个子表。而每个家长应该包含全部他的孩子,并且每个孩子都应该包含他的父母。

所以我的问题是我可以在MySQL中做到这一点?如果可以,我该怎么做,否则我可以用什么方法;

+0

如果您正在使用关系数据库管理系统(SQL)的任何味道,你需要重新制定您的要求进行收集,家长和儿童以实体和关系的语言。 https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model然后,创建表与您的实体和fks一起定义您的关系会容易得多。 –

+0

编辑你的问题,并提供一个使用数据的例子。 –

+0

你好,欢迎来到StackOverflow,ykaner。您介意绘制某种ASCII艺术图,向我们展示您正在处理的数据? –

回答

0

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

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

这样就能够满足你的两个requiremens:

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

如果你想为父母的孩子,你这样做:

select parentId, group_concat(childId) as children 
from children 
group by parentId; 
相关问题