我想在一個表中創建一個外鍵,它將指向其他值的集合。MYSQL:外鍵可以包含一個集合嗎?
例如我想做一個父表和一個子表。而每個家長應該包含全部他的孩子,並且每個孩子都應該包含他的父母。
所以我的問題是我可以在MySQL中做到這一點?如果可以,我該怎麼做,否則我可以用什麼方法;
我想在一個表中創建一個外鍵,它將指向其他值的集合。MYSQL:外鍵可以包含一個集合嗎?
例如我想做一個父表和一個子表。而每個家長應該包含全部他的孩子,並且每個孩子都應該包含他的父母。
所以我的問題是我可以在MySQL中做到這一點?如果可以,我該怎麼做,否則我可以用什麼方法;
如果我理解正確的話,這只是一個外鍵關係:
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;
一個外鍵定義了一個列(或列的集合),強制執行兩個表之間的關係。數據庫服務器負責執行這種關係以確保準確的數據。外鍵的模型定義由一個父(主)表組成,該表包含一組獨特的數據,然後在子(外部)表中引用該數據。
有關完整的解釋來看看這個:http://www.sparxsystems.com/enterprise_architect_user_guide/12.1/database_engineering/foreignkeys.html
如果您正在使用關係數據庫管理系統(SQL)的任何味道,你需要重新制定您的要求進行收集,家長和兒童以實體和關係的語言。 https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model然後,創建表與您的實體和fks一起定義您的關係會容易得多。 –
編輯你的問題,並提供一個使用數據的例子。 –
你好,歡迎來到StackOverflow,ykaner。您介意繪製某種ASCII藝術圖,向我們展示您正在處理的數據? –