多个外键取决于相同的主键

时间:2014-03-13 10:31:28

标签: sql-server-2012 primary-key foreign-key-relationship composite-primary-key

我们假设我有一个使用SQL Server作为数据库的Web应用程序。

我有一个表有2个外键,其中包含与其他表相同的值,

Sections

IDdepartment, IDstore, codTax, accountSell, accountTax, status, m1, m2

-> PK (IDdepartment, IDstore, codTax)
FK (accountSell, accountTax) on AccountPlan (accounCompany)

AccountPlan

AccountCod, account, description, account_desc, accountCompany, type, mov) 

-> PK (accountCompany)

accountSellaccountTax取决于accountCompany。两者都可以包含accountCompany中的所有可用值。

当我进行查询时,我想知道accountCompany的描述,如何完成此操作?

实际上我使用了两个带有重复数据的表,我认为只有一个表可以做同样的事情。希望这是可能的。

...谢谢

1 个答案:

答案 0 :(得分:0)

老实说,我希望你没有真正有两张重复数据的表格。两个FK指向同一个表是没有问题的:

create table Section
(
  accountSell int not null  foreign key references AccountPlan(accountCompany), 
  accountTax int not null  foreign key references AccountPlan(accountCompany)
)

您可以通过两次加入相同表来获取说明:

select
  sell.description as accountSell_description,
  tax.description as accountTax_description
from 
  Section s
  inner join AccountPlan sell on sell.accountCompany = s.accountSell
  inner join AccountPlan tax on tax.accountCompany = s.accountTax