-1

我对如何在我的问题中映射关系有疑问

我必须实体personcompany他们有存储地址的字段,所以我对最好的映射方式有疑问。

个人和公司可以共享相同的地址。

我正在使用 mysql 工作台来生成图表并制作数据库。

所以我该怎么做?

4

2 回答 2

1

定义一个名为的新实体,并将其指定为表和表address中的外键约束。如果地址相同,则两者都通过外键具有相同的地址。personcompanypersoncompany

于 2013-10-20T16:07:23.937 回答
0

一个人/公司可以有多个地址吗?
如果没有,您可以将 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)
于 2013-10-20T16:16:53.167 回答