我需要在我的数据库中存储一些地点ID。不幸的是,没有关于地点 ID 格式的文档。基本上,我的意思是最大(或固定)长度和有效字符(即验证地点 ID 形式正确性的正则表达式)。换句话说,我需要知道是否必须使用 CHAR(n) 或 VARCHAR(n) 以及该列的适当检查约束。
看起来它们总是 urlsafe Base64 字母表的 27 个字符(
-
而不是+
和_
而不是/
),但我不能 100% 确定,因为这方面没有记录。
有人可以解释一下吗?
不幸的是,我无法向您提供有关 PlaceID 的文档 - 如果 Google 能够确定下来,我很乐意看到一些文档。我确实想指出,当前 PlaceID 的长度现在是 40 个字符,而不是 27。
我给您的建议(以及我在自己的数据库中采取的建议)是不要限制 PlaceID 字段的大小,并使用 Nvarchar 来最大化 Google 将来可能选择使用的字符。
由于 Google 目前不承诺任何限制,我认为假设他们将保留当前格式,您将承担风险。
当前的文档(最后更新时间为 2019 年 6 月 20 日)指出地点 ID 的长度各不相同,并且(当前)可以从 27 个字符长一直到 60 个字符。
地点 ID 是唯一标识地点的文本标识符。标识符的长度可以变化。例子:
ChIJrTLr-GyuEmsRBfy61i59si0
EisxMyBNYXJrZXQgU3RyZWV0LCBXaWxtaW5ndG9uLCBOQyAyODQwMSwgVVNB
SQL 结构中的 PLACE_ID 至少应为 512。
这是长度为 315 的有效 ID:
'EsIBS0FWLjc2LTc4LCBJbmRvZm9vZCBUb3dlciwgU3VkaXJtYW4gUGxhemEsIEpsLiBKZW5kLiBTdWRpcm1hbiBOby43Ni03OCwgUlQuMy9SVy4zLCBLdW5pbmdhbiwgU2V0aWEgQnVkaSwgS2VjYW1hdGFuIFNldGlhYnVkaSwgS290YSBKYWthcnRhIFNlbGF0YW4sIERhZXJhaCBLaHVzdXMgSWJ1a290YSBKYWthcnRhIDEwMjUwLCBJbmRvbmVzaWEiJRojChYKFAoSCSH20UED9GkuEc707mF-vRHxEglLQVYuNzYtNzg'
我个人使用 SHA256 固定长度唯一字段作为带有查找表的 PLACE_ID。 不管怎样,至少 512。
Google API 中的 placeId 有一些变化。 查看 Google Doc 以了解更多信息。 如果需要有关地点自动完成的任何示例和文档。
http://www.w3docs.com/learn-javascript/places-autocomplete.html
我根据我的服务位置系统做了同样的操作来注册频繁位置,推荐的事情看到 27、60 和 92 之间的变化。
我把它留在了256(有成长或改变原型的可能性)。
从建议的编辑到接受的答案:
[地点 ID 文档][1] 现在说:“标识符的长度可能会有所不同(地点 ID 没有最大长度)”