我们需要一个解决以下问题的方法,它是有意义的,并且遵循最佳实践而不会使事情变得复杂。
我们有 3 个需要链接的表,即Sector、Location和Company。
即:公司“Bobs B&B”位于“纽约”位置的“住宿”部门。对于酒店集团,我们可以在多个地点的多个部门拥有一家公司。
所以我们决定简单地创建一个“ CompanySectorLocation ”表,它有 3 个主键链接 3 个表:
CompanySectorLocation
CompanyID (PK FK)
SectorID (PK FK)
LocationID (PK FK)
这里的弧形球是不需要位置的。
即:“Protea Hotels”在“Accomodation”部门处于活动状态,将位置保留为NULL。
我的开发人员非常反对拥有一个允许NULL FK的表。他的建议是创建另一个名为CompanySector的表,该表将处理Company和未定义Location的Sector之间的链接。
CompanySector
CompanyID (PK FK)
SectorID (PK FK)
我的问题是我们必须维护 2 个表,其中包含有效的重复数据。
做这个的最好方式是什么?