是否可能有两个具有不同名称的主键的主键与主键

时间:2015-09-03 09:44:29

标签: database postgresql

有一些名为orderaddress的表格。

address_id是表primary key的{​​{1}}。

address的{​​{1}}和shipping_address_idbilling_address_id引用表order

是否正确?

2 个答案:

答案 0 :(得分:0)

此:

CREATE TABLE a (
    blah integer primary key
);

CREATE TABLE b (
    differentname integer references a(blah)
);

完全有效。引用和引用的方面不必具有相同的名称。

答案 1 :(得分:0)

如果你问一个表中的两个列是否可以在另一个表中引用一个列,那么绝对是:

create table address
(
  address_id integer primary key
);

create table orders 
(
  id                   integer primary key,
  order_date           date not null, 
  shipping_address_id  integer references address,
  billing_address_id   integer references address
);

或更详细地说:

create table orders 
(
  id                    integer primary key,
  order_date            date not null, 
  shipping_address_id   integer,
  billing_address_id    integer,
  foreign key (shipping_address_id) references address (address_id),
  foreign key (billing_address_id) references address (address_id),
);
相关问题