我有一个名为addresses
的表,它存储来自这两个表people
和companies
的N:N子信息。
因此,我创建了另一个名为address_links
的表格,其中包含字段address_id
和contact_id
,以便联系人ID可以来自people
或来自companies
记录。
所以我需要另一个字段,通过创建记录,指向正确的表。但是,当我在查询列表中创建显示该地址所有者名称的查询时,我该怎么做才能自动化该解释?我尝试IF
以便通过选择表来说明第三个字段,但它没有用。
解释注意:某个地址可能是不止一个人的住所或工作地点。
答案 0 :(得分:2)
如果您需要链接到不同的表,那么通常您希望为每个表都有一个单独的链接表。这允许数据库强制执行参照完整性并消除对特殊if语句的需要,如果另一个开发人员在不必了解特殊实现细节的情况下查看数据库,它也使数据库更容易理解。
示例表(列):
Addresses (AddressId, Address, City, State, Zip, ...)
Persons (PersonId, FirstName, ...)
Companies (CompanyId, Name, ...)
AddressPersonLinks (AddressId, PersonId)
AddressCompanyLinks (AddressId, CompanyId)