我对如何在我的问题中映射关系有疑问
我必须person
实体,company
它们有字段来存储地址,所以我对映射的最佳方式有疑问。
个人和公司可以共享相同的地址。
我正在使用mysql工作台来绘制图表并制作数据库。
那我该怎么办?
定义一个名为 address
的新实体,并将其指定为person
表和company
表中的外键约束。如果地址相同,则 person
和 company
通过外键具有相同的地址。
一个人/公司可以有多个地址吗?
如果没有,您可以将 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)