[pgsql-jp: 34930] 配列の参照

SAISHO Kazuhiro ml @ saisho.info
2005年 2月 22日 (火) 11:37:00 JST


税所です。
いつもお世話になっております。

さて、次のように社員とジョブのテーブルを作るとします。

create table "社員" (
    "社員ID" text primary key,
    "名前"   text
);
create table "ジョブ" (
    "ジョブID" text primary key,
    "件名"     text,
    "担当者"   text[]
);

このとき"ジョブ"."担当者"の配列要素が"社員"."社員ID"を
参照するようにしたいのですが、どうしたらいいのでしょうか?


また、上記とは別に、次のようにした場合、

create table "社員" (
    "社員ID" text primary key,
    "名前"   text
);
create table "ジョブ" (
    "ジョブID" text primary key,
    "件名"     text
);
create table "担当" (
    "ジョブID" text references "ジョブ" ("ジョブID"),
    "担当者"   text references "社員"   ("社員ID")
    unique ("ジョブID", "担当者")
);

そして、各テーブルのデータが次のとおりだとして、

 社員ID | 名前
--------+------
 1      | a
 2      | b
 3      | c

 ジョブID | 件名
----------+------
 x        | X
 y        | Y

 ジョブID | 担当者
----------+--------
 x        | 1
 x        | 2
 x        | 3
 y        | 1
 y        | 3

これらのテーブルを結合して、

 件名 | ?column?
------+----------
 X    | {a,b,c}
 Y    | {a,c}

このようにすることはできるのでしょうか?


一応環境は、
PostgreSQL 7.4.2
FreeBSD 4.9-RELEASE-p4
です。

宜しくお願い致します。

--
税所 一弘 <ml @ saisho.info>




pgsql-jp メーリングリストの案内