有没有办法在数据库中创建0 or 1到0 or 1的关系?
例如,假设我有一个经理表和一个艺术家表。一个经理只能管理一个艺术家,一个艺术家只能有一个经理。然而,经理可以没有艺术家(即寻找艺术家来管理),而艺术家可能没有经理。
有没有办法做到这一点?在这两个表中创建一个外键只会创建一个1 to many关系。
发布于 2017-02-20 17:49:53
这是相当简单的。
您有一个可能不存在的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)
...
);现在,艺术家不能有多个经理,经理也不能有多个艺术家。艺术家可能没有经纪人。
发布于 2017-02-20 17:54:32
我认为,应该有separate table来管理关系。它将包含两个表的键,但会有一个约束来防止重复的组合键。
通过这种方式,您不需要为没有Artist的经理或没有任何Manager的Artists插入密钥(避免Null条目)
发布于 2017-02-20 17:50:57
我在管理器表上放了一个外键字段,指向他们正在管理的艺术家,允许为空。
然后,您可以使用它来查找他们正在管理的艺术家,并找到特定艺术家的经理。
https://stackoverflow.com/questions/42341150
复制相似问题