发票表的主键与预算表的主键不相同。预算与发票表有相同的发票描述,但是在预算表中并没有真正的主键,即人们同意支付的东西的列表。
我想要创建一个数据库,是前瞻性的,但我不能预先创建一个发票数据库,因为我没有发票ID,直到我们是账单。我可以根据合同预算创建一个项目表,但是我必须更改主键,我不知道主键是什么。
发布于 2022-01-12 23:51:09
主键在两个不同的表之间匹配并不常见(尽管存在一些情况)。相反,一个表应该有第二个字段,即对另一个表的主键的外键引用,以便将两个表关联在一起。或者,有时两个表都将由两个表中的外键字段关联。
如果没有更多的细节,我猜您的用例属于后一种情况。我设想您有一个Contracts表,它的主键字段是ContractId,Budgets表的主键字段是BudgetId,Invoices表的主键字段是InvoiceId。Budgets和Invoices表都有一个名为ContractId的外键引用字段,该字段将引用Contracts表中的主键ContractId字段。
在上面的场景中,这将使您为给定的Invoices接收到的所有Contract与该契约的关联Budget相关联。这假设您的Invoices和Budgets本身并不是一对一的(例如,Contract可以有一个大的Budget,但被分解成多个Invoices)。在实践中,这通常是编制预算和开具发票的常见方式。
但是,如果用例确实在Budgets和Invoices之间有一对一的关系,那么您所需要做的就是在Invoices表中有一个名为BudgetId的外键引用字段,它从Budgets表中引用BudgetId字段。您将在创建Invoices.BudgetId记录时将Invoice设置为正确的值。
https://dba.stackexchange.com/questions/306006
复制相似问题