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