回答

5

我可以在一個表中的主鍵和第二個表中的主鍵之間具有一對多關係嗎?

不,因爲每個表中的主鍵值必須是唯一的,所以您無法在任一表中使用同一主鍵的多個值。我們可以(通常也可以)在一個表(「父表」)和另一個(「子」)表中的關鍵字之間建立主關鍵字之間的一對多關係,其中外鍵鍵入子表保存父表中的主鍵值。

實施例:

[tblCustomers]

CustomerID CompanyName 
---------- ----------- 
     1 Company1 
     2 Company2 

[tblInvoices]

InvoiceID CustomerID InvoiceDate 
--------- ---------- ----------- 
     1   1 2014-07-21 
     2   1 2014-08-25 
     3   2 2014-08-28 

我們建立tblCustomers.CustomerID(主鍵之間的一對多的關係[tblCustomers]「父」表)和tblInvoices.CustomerID( [tblInvoices]「子」表中的外鍵)。 tblInvoices.CustomerID而不是是唯一的,因爲可以有多個發票給同一個客戶。

請注意,如果你嘗試建立tblCustomers.CustomerID(在[tblCustomers]「父」表的主鍵)和tblInvoices.InvoiceID(在[tblInvoices]「孩子」表的主鍵),那麼這種關係之間的關係必須是一對一的關係。這也沒有意義。

+1

幹得好,我得到了完全flummoxed對這個答案:) – Fionnuala 2014-08-28 11:33:11

+0

@Fionnuala flummoxed - 很好! – 2014-08-28 14:33:16

0

這是預期的行爲。主鍵必須是唯一的,所以如果將兩個主鍵連接在一起,那麼關係必須是一對一的。

相關問題