有没有办法在数据库中创建0 or 1
到0 or 1
的关系?
例如,我们说我有一张经理人表和一张艺术家表。经理只能管理一位艺术家,而艺术家只能拥有一位经理。 然而,经理可能没有艺术家(即寻找艺术家来管理),而艺术家可能没有经理。
有没有办法做到这一点?在任一表中创建外键只会创建1 to many
关系。
答案 0 :(得分:3)
这很简单。
你有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)
...
);
现在艺术家不能拥有多个经理,经理不能拥有多个艺术家。艺术家可能没有经理。
答案 1 :(得分:0)
我在管理器表上放置一个外键字段,指向他们正在管理的艺术家,允许空值。
然后,您可以使用它来查找他们管理的艺术家,并找到特定艺术家的经理。
答案 2 :(得分:0)
我认为应该有separate table
来管理关系。它将包含两个表的键,但是会有一个约束来防止重复的复合键。
通过这种方式,您无需为没有艺术家的经理或没有任何经理的艺术家插入关键字(避免空洞参赛作品)
答案 3 :(得分:-1)
在RDBMS中,您可以在表之间获得三种关系
一对一; 一对多; 多对多
没有什么比一到零的关系,但你可能会在工作时得到一对零关系,即一些数据可能存在于1-0关系发生但你无法明确定义1-0关系,如一对一,一对许多或多对多的关系。