有沒有一種方法來在數據庫中創建一個0 or 1
到0 or 1
關係?零或一至零或一的關係
例如,假設我有一張經理人表和一張藝術家表。經理只能管理一位藝術家,藝術家只能擁有一位經理。 但是,經理可能沒有藝術家(即尋找藝術家來管理),藝術家可能沒有經理。
有沒有辦法做到這一點?在任一表中創建一個外鍵只會創建一個1 to many
關係。
有沒有一種方法來在數據庫中創建一個0 or 1
到0 or 1
關係?零或一至零或一的關係
例如,假設我有一張經理人表和一張藝術家表。經理只能管理一位藝術家,藝術家只能擁有一位經理。 但是,經理可能沒有藝術家(即尋找藝術家來管理),藝術家可能沒有經理。
有沒有辦法做到這一點?在任一表中創建一個外鍵只會創建一個1 to many
關係。
這很簡單。
您有1:1的關係可能不存在。
所以你有一個unique
foreign key
這是nullable
,因此可以指定爲指向無。
喜歡的東西:
CREATE TABLE manager (
id int primary key,
....
);
CREATE TABLE artist (
id int primary key,
manager_id int unique references manager(id)
...
);
現在的藝術家不能有一個以上的經理,和經理不能有一個以上的藝術家。而藝術家可能沒有經理。
我會在經理桌上放一個指向他們正在管理的藝術家的外鍵字段,從而允許空值。
然後,您可以使用它來查找他們正在管理的藝術家,並找到特定藝術家的經理。
我認爲應該有separate table
來管理關係。它將包含兩個表的鍵,但是會有一個約束來防止重複的組合鍵。
這樣,你不需要插入用於沒有藝術家誰沒有任何經理誰經理,或藝術家鍵(避免了空條目)
在RDBMS,你可以得到三種關係表
一對一; 一對多; 多對多
沒有什麼比一個零關係,但你可能會得到一個零關係即工作的一些數據可能存在1-0哪裏發生關係時,但你不能明確地定義1-0的關係像一對一,多對多或多對多的關係。
你甚至不能像「一對一」或「一對多」那樣定義這種關係。他們實際上是概念,有不同的方法來鍛鍊他們。 – Lali
嗯,我的意思是(Y) –