有没有一种方法来在数据库中创建一个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) –