1 对 1 关系 postgres

问题描述 投票:0回答:1

我尝试在 postgresQL 中创建一对一关系,但是当我检查 ERD 时,它看起来像是一对多关系。

这是我的 SQL 脚本:

CREATE TABLE capital (
  id SERIAL PRIMARY KEY, 
  name VARCHAR(100)
);

CREATE TABLE country (
  id SERIAL PRIMARY KEY, 
  name VARCHAR(100), 
  capital_id INTEGER, 
  CONSTRAINT fk_capital FOREIGN KEY(capital_id) REFERENCES capital(id)
);

postgres不支持1对1吗?

提前致谢,

sql database postgresql pgadmin
1个回答
0
投票

您正在创建一个

1:1
,但是您没有在您的
UNIQUE
中添加
FOREIGN KEY
ERD
认为单个首都可能有多个国家/地区,因此只需添加
UNIQUE
capital_id

这是更新后的代码:

CREATE TABLE capital (
  id SERIAL PRIMARY KEY, 
  name VARCHAR(100)
);

CREATE TABLE country (
  id SERIAL PRIMARY KEY, 
  name VARCHAR(100), 
  capital_id INTEGER UNIQUE, 
  CONSTRAINT fk_capital FOREIGN KEY(capital_id) REFERENCES capital(id)
);
© www.soinside.com 2019 - 2024. All rights reserved.