1

ユーザーとストアの2つのテーブルがあります

ユーザー テーブルの主キーは住所と電話番号の組み合わせです (ユーザーは Web ページから登録しますが、同じユーザーが 2 回登録することは望ましくありません)。userId 列はシリアルですが、主キーではありません

Stores テーブルでは、ownerID の列は users テーブルの userID です - しかし、これは主キーではないため、参照を設定することはできません (シリアルではありますが)。

どうすればこの結果を達成できますか?

4

2 に答える 2

2

参照列は主キーである必要はありません。

外部キーは、主キーまたは一意制約の列を参照できます。

これは、次の方法で行うことができます。

CREATE TABLE Users(
  address varchar(100),
  phone_number varchar(20),
  userid serial,
  constraint pk primary key (address, phone_number ),
  constraint userid_unq unique (userid)
);

create table Stores(
  storeid int primary key,
  ownerID integer,
  constraint b_fk foreign key (ownerID)
    references Users(userid)
);
于 2013-10-27T07:48:40.363 に答える