2017-04-02 121 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; 
相關問題