每當我嘗試創建兩個表之間的一對多關係時,我意識到它只在表中的主鍵與表2中的主鍵之間存在關係時才起作用。如果它有主鍵,則它會自動更改爲一對一關係我可以在一個表中的主鍵和第二個表中的主鍵之間有一對多的關係嗎?
2
A
回答
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]「孩子」表的主鍵),那麼這種關係之間的關係必須是一對一的關係。這也沒有意義。
0
這是預期的行爲。主鍵必須是唯一的,所以如果將兩個主鍵連接在一起,那麼關係必須是一對一的。
相關問題
- 1. Rails:我可以使用外鍵作爲一對一關係中的主鍵嗎?
- 2. 從第一個表的主鍵和第二個表的外鍵獲取記錄
- 3. 如何定義多個表之間的關係,而我有多個列主鍵?
- 4. 一個表可以有多個主鍵嗎?
- 5. JPA:一個表的主鍵和另一個表的主鍵和外鍵
- 6. 一個表的JPA複合鍵和另一個表的主鍵 - 可能嗎?
- 7. 兩個子集表在一對一關係中與另一個表中的外鍵共享相同的主鍵
- 8. JPA:與外鍵,多個主鍵和多對一關係問題
- 9. 一個關係可以在多個外鍵的3NF中嗎?
- 10. 可以將一個表的複合主鍵用作另一個表上覆合主鍵的一部分嗎?
- 11. 如何在一個多一對多的關係用主鍵加入SQLITE表
- 12. JPA:在一個表中的主鍵列和另一個表中的非主列之間創建約束?
- 13. 2個表之間有2個一對多的關係可以接受嗎?
- 14. 一個表中的主鍵是否也可以作爲主鍵出現在另一個表中?
- 15. 表中可能有多少個主鍵?
- 16. 多對多表中的一個或兩個主鍵?
- 17. 同一表中的主鍵和外鍵
- 18. 與多個表之一之間的外鍵關係
- 19. Linq2Sql:我可以使用外鍵關係在兩個表中沒有主鍵的情況下創建實體嗎?
- 20. 使用表中的多個外鍵選擇一個主鍵
- 21. 外鍵可以是另一個表的複合主鍵的一部分嗎?
- 22. 兩個表主鍵作爲第三個表的主鍵
- 23. 一對一映射關係在這兩個表中的相同主鍵
- 24. 如何從主表鍵和外鍵在同一個表中刪除主鍵。
- 25. 更新在一個表中的主鍵是另一個表中的外鍵
- 26. 關係數據庫設計 - 一個表中的雙主鍵?
- 27. 如何創建一個表中的單個列和第二個表中的多個行之間的關係?
- 28. 如果兩個表中的關係是多對一即從第一個表(多個)到第二個表(一個)
- 29. 如何爲第一個主鍵列添加新條目時自動增加表中的第二個主鍵列
- 30. 我可以有一個表與數據庫的外鍵但沒有主鍵
幹得好,我得到了完全flummoxed對這個答案:) – Fionnuala 2014-08-28 11:33:11
@Fionnuala flummoxed - 很好! – 2014-08-28 14:33:16