Symfony doctrine数据库规范化

时间:2017-05-17 11:54:36

标签: php mysql symfony doctrine-orm

我在数据库上工作,我的一个关系有问题,我有一个Person实体和一个Address实体,Person和Address之间有一个OneToMany关系。我想规范化Address实体,这样如果你有多个具有相同地址的人,那么数据库中只有一个地址。这是一个可视化:

  

第1人:{id:1,姓名:" foo",address_id:1}

     

第2人:{id:2,姓名:" bar",address_id:1}

     

地址1:{id:1,街道:" barstreet",housenumber:123}

如果我想更改Person 1的地址,我不想更改地址1,因为第2个人仍然链接到它,所以我想要这样做:

  

第1人:{id:1,姓名:" foo",地址_id:2}

     

第2人:{id:2,姓名:" bar",address_id:1}

     

地址1:{id:1,街道:" barstreet",housenumber:123}

     

地址2:{id:1,街道:" bazstreet",housenumber:5}

提前感谢,解决此问题的最佳方法是什么。

1 个答案:

答案 0 :(得分:2)

您的数据库结构看起来很好。 我想你有很多人生活在同一地址的案例:)

当您需要更新某人的地址时,我会进行下一步:

  1. 检查数据库中是否存在提供街道号,房屋等的地址。
  2. 如果数据库中的地址存在,我们会将该人与该地址相关联。
  3. 如果数据库不存在,则应创建新地址并将其添加到该人员。
相关问题