如何让多行引用单行的同一个字段?

How to have multiple rows reference the same field of a single row?

我是 PostgreSQL 的新手,正在 table 之间建立关系。 我有一个工作 table 和一个项目 table。作业 table 有一个 shipping_date。我希望项目 table 有一个反映工作 table:

的 shipping_date 的列
jobs table:

job_id | shipping_date
10001  | 29-06-2014
10002  | 29-06-2014
10003  | 30-06-2014


items table:

item_id | job_id      | shipping_date
1234    | fkey(10001) | need this to be 29-06-2014 
1235    | 10001       | need this to be 29-06-2014

发货日期不能是 fkey,因为它不是唯一的,但我们需要它来引用工作 table.

中的相关 shipping_date

每个作业可以有多个关联项。每个项目只能与一个作业相关联。

谢谢!

您不想在您的数据库中有冗余。您可以创建一个 view 来连接两个表并显示您需要的内容。 select 可以是:

SELECT a.item_id, a.job_id, b.shipping_date
  FROM items a INNER JOIN jobs b ON a.job_id = b.job_id

我发现我只需要做一个连接子句:

SELECT shipping_date FROM items INNER JOIN jobs ON (job_items.job_id = jobs.job_id);