Primary-Key

如何使用契約中的預算製作發票數據庫?

  • January 12, 2022

發票表的主鍵與預算表的主鍵不同。預算具有與發票表相同的確切發票描述,但預算表中並沒有真正的主鍵,即人們同意支付的東西的列表。

我想創建一個具有前瞻性的數據庫,但我無法預先創建發票數據庫,因為在我們計費之前我沒有發票 ID。我可以根據契約預算創建一個要支付的項目表,但是我必須更改主鍵並且我不知道主鍵是什麼。

主鍵在兩個不同的表之間匹配並不常見(儘管有一些情況)。相反,一個表應該有第二個欄位,它是對另一個表的主鍵的外鍵引用,以將兩個表關聯在一起。或者有時兩個表都將通過兩個表中的外鍵欄位相關聯。

如果沒有更多細節,我猜您的案例屬於後一種情況。我會設想您有一個Contracts主鍵欄位為的表,主鍵欄位為ContractId的表,以及主鍵欄位為的表。和表都會有一個外鍵引用欄位,也稱為外鍵引用欄位,它將引用表中的主鍵欄位。Budgets``BudgetId``Invoices``InvoiceId``Budgets``Invoices``ContractId``ContractId``Contracts

在上述情況下,這會將Invoices您收到的所有給定契約與該契約Contract的相關性聯繫起來Budget。這假設您的InvoicesandBudgets本身不是一對一的(例如, aContract可以有一個大的Budget但被分解成多個Invoices)。這通常是預算和發票在實踐中的常見方式。

但是,如果您的案例確實具有一對一的關係BudgetsInvoices那麼您需要做的就是BudgetId在您的Invoices表中呼叫一個外鍵引用欄位,該BudgetId欄位引用您表中的欄位Budgets。並且您可以在創建記錄Invoices.BudgetId時將 設置為正確的值Invoice

引用自:https://dba.stackexchange.com/questions/306006