我怀疑如何在我的问题中映射关系
我必须向实体person
和company
提供存储地址的字段,因此我对映射的最佳方式存有疑问。
个人和公司可以共享相同的地址。
我正在使用mysql工作台来创建图表并创建数据库。
那我该怎么办?
答案 0 :(得分:1)
定义名为address
的新实体,并将其指定为person
和company
表中的外键约束。如果地址相同,则person
和company
通过外键具有相同的地址。
答案 1 :(得分:0)
某个人/公司可以有多个地址吗? 如果没有,您可以将FK密钥放在个人和公司表中;
Person Table
AddressId (FK)
Company Table
AddressId (FK)
或者您可以在地址表中拥有2个FK,一个到一个人,一个到公司。
Address Table
PersonId (FK, Nullable)
CompanyId (FK, Nullable)
如果是的话,你需要做很多关系。 你还需要2个桌子。
PersonToAddress Table
PersonId (FK to Person)
AddressId (FK to Address)
*Compound PK (PersonId, AddressId)
CompanyToAddress Table
CompanyId (FK to Company)
AddressId (FK to Address)
*Compound PK (CompanyId, AddressId)