我有这些表格:
Companies (CompanyID, Name, CompanyTypeID)
CompanyTypes (CompanyTypeID, Name)
我想避免像" TypeACompanies"," TypeBCompanies"等表格。但问题是两种特定公司类型之间存在多对多关系 - 一种"零售商"公司可以有很多"供应商"公司,以及一个"供应商"公司可以提供许多"零售商"公司。
这导致了一个带有复合主键的新链接表 - 这两个字段都是Companies
的外键:
RetailerCompanies_SupplierCompanies (RetailerCompanyID, SupplierCompanyID)
链接表的示例数据:
(1,1)
(1,2)
(1,3)
(2,1)
(2,2)
(2,3)
在实体框架中,Company
实体看起来像这样(我在做数据库优先):
public Company()
{
this.Companies1 = new HashSet<Company>();
this.Companies = new HashSet<Company>();
}
这是不好的做法吗?有没有更好的方法来实现这种关系?