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

时间:2015-06-10 11:33:20

标签: relational-database relational

我是PostgreSQL的新手并在表之间形成关系。 我有一个工作表和一个项目表。作业表有shipping_date。我希望items表有一个反映jobs表的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,因为它不是唯一的,但我们需要它来引用作业表中的相关shipping_date。

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

谢谢!

2 个答案:

答案 0 :(得分:0)

您不希望在数据库中拥有冗余。您可以创建一个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

答案 1 :(得分:0)

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

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