如何在sql中创建三级关系?

如何在sql中创建三级关系?,sql,Sql,哪种方法是在三个表之间创建关系的最佳方法,例如客户有公司,而这些公司有分支机构。我需要知道如何创建这三个表的键。第一个表有CustID,第二个表有CustID和CompanyId,最后一个表有CustID、CompanyId和BrnchId。 有更好的办法吗?分行与客户无关。公司也不是真的(好吧,公司不依赖个人客户存在)。您可能希望进行规范化,以便有一个customerToCompany链接表(这样一个客户可以有多个公司,一个公司可以有多个客户),公司到分支机构可能是一对多的,这取决于您的用例。

哪种方法是在三个表之间创建关系的最佳方法,例如客户有公司,而这些公司有分支机构。我需要知道如何创建这三个表的键。第一个表有CustID,第二个表有CustID和CompanyId,最后一个表有CustID、CompanyId和BrnchId。
有更好的办法吗?

分行与客户无关。公司也不是真的(好吧,公司不依赖个人客户存在)。您可能希望进行规范化,以便有一个customerToCompany链接表(这样一个客户可以有多个公司,一个公司可以有多个客户),公司到分支机构可能是一对多的,这取决于您的用例。每个主表都有一个PK(自然或代理,取决于数据的性质),链接表包含FK。

客户->公司->分支机构。不需要双链接的东西。您可以通过公司将分支机构链接回客户。客户和公司之间的关系是自有的,根据用例,先有客户,然后创建业务,没有客户就不可能存在,分支机构没有业务也不可能存在。这就是规则。问题出现了,因为我需要获得客户业务的所有分支。我使用的是EF4和使用接口IObjectSet创建的存储库,没有前面提到的关系,我遇到了一个更复杂的查询场景