我正在设计一个数据库,其中我有与客户相关的地址。根据面向对象编程的规则,地址可以独立存在而无需客户,许多客户可以拥有相同的地址,客户也可以拥有多个地址。所以我在Customer&和我之间建立了多对多的关系。地址。我的表格如下: ERD of Customer Address
现在,这种设计要求地址表中的地址是独一无二的,以符合现实世界,这是我现在面临的挑战。 我想到了一个解决方案,即使用Google's Autocomplete for Addresses并从中查找地址。如果输入的地址是新的,那么我会将其插入地址表中,如果它已经存在于数据库中,那么我只会在 CustomerAddress 表中插入记录以进行关联。现在我有两个问题:
1)我认为解决方案有效吗?我怀疑它,因为我没有在任何地方看到这样的实现?
2)上述解决方案只能解决问题,直到 AddressLine1 而不是 AddressLine2 ,这通常是Floor&公寓/办公室/商店号码。我不知道任何为 AddressLine2 提供查找唯一值的API。那我怎样才能保持 AddressLine1 和&的组合。 AddressLine2 唯一?