场景:每个“用户”有 0 或 1 个“银行账户”。每个“公司”有 0 或 1 个“银行帐户”。“BankAccount”记录不能共享。如何设置我的数据库来对此进行建模?我试过这个:
“CompanyBankAccount”表,“BankAccountId”(主键)作为“BankAccount”表的外键,“CompanyId”列作为“Company”表的外键。
具有可为空的“BankAccountId”列作为“CompanyBankAccount”表中的外键的“Company”表。我对用户表遵循了相同的模式。
虽然这可行(强制执行规则,即任何公司或用户都不能拥有超过 1 个银行账户,并且其他用户或公司不能共享任何银行账户),但创建具有银行账户的新公司或用户是很麻烦的(我必须首先插入具有 NULL BankAccountId 的公司/用户,然后插入新的 BankAccount 记录,然后插入新的 [Company/User]BankAccountRecord,然后更新我刚刚插入的公司/用户记录上的“BankAccountId”字段)。似乎应该有一个更简单的方法。有没有人有更优雅的解决方案?