Primary-Key
如何使用契約中的預算製作發票數據庫?
發票表的主鍵與預算表的主鍵不同。預算具有與發票表相同的確切發票描述,但預算表中並沒有真正的主鍵,即人們同意支付的東西的列表。
我想創建一個具有前瞻性的數據庫,但我無法預先創建發票數據庫,因為在我們計費之前我沒有發票 ID。我可以根據契約預算創建一個要支付的項目表,但是我必須更改主鍵並且我不知道主鍵是什麼。
主鍵在兩個不同的表之間匹配並不常見(儘管有一些情況)。相反,一個表應該有第二個欄位,它是對另一個表的主鍵的外鍵引用,以將兩個表關聯在一起。或者有時兩個表都將通過兩個表中的外鍵欄位相關聯。
如果沒有更多細節,我猜您的案例屬於後一種情況。我會設想您有一個
Contracts
主鍵欄位為的表,主鍵欄位為ContractId
的表,以及主鍵欄位為的表。和表都會有一個外鍵引用欄位,也稱為外鍵引用欄位,它將引用表中的主鍵欄位。Budgets``BudgetId``Invoices``InvoiceId``Budgets``Invoices``ContractId``ContractId``Contracts
在上述情況下,這會將
Invoices
您收到的所有給定契約與該契約Contract
的相關性聯繫起來Budget
。這假設您的Invoices
andBudgets
本身不是一對一的(例如, aContract
可以有一個大的Budget
但被分解成多個Invoices
)。這通常是預算和發票在實踐中的常見方式。但是,如果您的案例確實具有一對一的關係
Budgets
,Invoices
那麼您需要做的就是BudgetId
在您的Invoices
表中呼叫一個外鍵引用欄位,該BudgetId
欄位引用您表中的欄位Budgets
。並且您可以在創建記錄Invoices.BudgetId
時將 設置為正確的值Invoice
。