地理定位服务的地址表方案



我有一个SQL数据库,其中包含诸如存储,用户等表。

商店和用户以及其他实体都有一个地址。

我正在考虑为所有地址创建一个地址表:

Users
--------
UserId (PK)
AddressId (FK)
Name
Addresses
--------  
AddressID (PK)
CountryID (FK) -> I have a table Countries with all Countries
Street
PostalCode
Locality
Region
Latitude
Longitude

当用户填写个人资料时,我会输入一个输入地址。

我想使用谷歌地理编码API将输入的地址转换为其字段,并将其保存到包括纬度和经度在内的数据库中。


https://developers.google.com/maps/documentation/geocoding/start https://developers.google.com/maps/documentation/javascript/geocoding

我有几个问题:

  1. 我的地址表方案是否适合此?

  2. 计划使用谷歌地理编码API,那么我应该存储PlaceId,然后谷歌返回到我的数据库中吗?

我的主要目标是:

  1. 将用户输入的地址转换为地址字段并保存到数据库;

  2. 通过在我的数据库中拥有用户地址类型的纬度和经度,我将能够按位置搜索它们。 示例:获取伦敦地址半径 20 公里范围内的应用程序的用户。

你有没有想过把门牌号分开?某些外部服务或 API 需要这样做。如果需要,可以更轻松地连接此字段。

地理位置有一个地理数据类型:https://learn.microsoft.com/en-us/sql/t-sql/spatial-geography/spatial-types-geography?view=sql-server-2017 使用此类型,您可以使用一些地理函数(例如两点之间的距离(高效地查询数据库。

我不会直接保存Google-API结果。使用您自己的所需架构。

如果使用地理类型,则可以使用长/拉特和按半径的距离进行查询。

相关内容

  • 没有找到相关文章

最新更新