我正在处理数据库,我的一个关系有问题,我有一个个人实体和一个地址实体,一个人和地址之间有一个一对多关系。我想规范化地址实体,因此如果您有多个具有相同地址的人,则数据库中只有一个地址。下面是一个可视化:
人员 1: { id: 1, 姓名: "foo", address_id: 1 }
人员 2: { id: 2, 姓名: "bar", address_id: 1 }
地址 1: { id: 1, 街道: "酒吧街", 门牌号: 123 }
如果我想更改人员 1 的地址,我不想更改地址 1,因为人员 2 仍然链接到它,所以我希望发生这种情况:
人 1: { id: 1, 姓名: "foo", address_id: 2 }
人员 2: { id: 2, 姓名: "bar", address_id: 1 }
地址 1: { id: 1, 街道: "酒吧街", 门牌号: 123 }
地址 2: { id: 1, 街道: "bazstreet", 门牌号: 5 }
解决此问题的最佳方法是什么,提前感谢您。
数据库的结构看起来不错。 我想你有很多人住在同一个地址的案例:)
当您需要更新某人的地址时,我会执行下一个流程:
- 检查数据库中是否存在带有提供的门牌号、房屋等的地址。
- 如果数据库中存在该地址,我们会将该人与该地址相关联。
- 如果数据库中不存在该地址,则应创建一个新地址并将其添加到该人员。