sql – 在数据库varchar字段中存储GPS位置
如果有人提出任何建议,我将不胜感激:
如何在可以索引的varchar字段中有效地存储gps(或任何浮点数). 背景: 我们开发了一个内容管理系统,可以有效地存储任何类型的文件和一组元数据.此文件/元数据存储如下: file_table metadata_table ---------- -------------- file_id -> file_id (number) file_name metadata_id (number) file_location metadata_value (varchar) ...etc 我被要求为地理标记文件提供支持(即将gps坐标存储为元数据).此外,我们还希望支持具有多个地理标记的文件. 现在据我所知,我有几个选择: 1)将纬度和经度存储在相同的metadata_value varchar中(例如’52.4343242,-1.32324′). 我如何查询此字符串?有什么聪明的我可以使用sql,允许我查询字符串的“组件”?我可以将坐标存储为xml字符串 – 这会有帮助吗?如何有效地编制索引? 2)将纬度和经度存储为metadata_table中的单独行. 这个解决方案解决了支持更容易查询的问题(以牺牲复杂性和笨重为代价,特别是当我将每个文件存储多个地理标记时),但是我仍然面临着索引的问题. 我可以在查询时将varchars转换为浮点数,但是我不确定这是否会忽略我在metadata_table.metadata_value上的索引并执行表扫描. 3)创建专用浮点字段以存储gps数据. 这是最不可取的选项,因为它违背了设计的细节,为特定元数据添加数据库字段.并非所有文件都存储gps数据. 任何帮助或建议表示赞赏. 解决方法您可以使用Oracle定位器. Oracle Spatial的免费子集可以执行各种不同的地理操作和空间数据索引: http://www.oracle.com/technology/products/spatial/index.html通过使用列类型mdsys.sdo_geometry,您可以在数据库中存储点,点云,线,多边形和3D事物. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 为什么SQL聚合函数比Python和Java(或Poor Man的OLAP)慢得多
- 如何dplyr :: inner_join多个tbls或data.frames在R中
- sql-server – 连接到SQL Server时OLEDB / ODBC驱动程序有什
- SQLSERVER图片查看工具SQL Image Viewer5.5.0.156
- sql-server – SQL Server检查/ NoCheck生成的脚本中的差异
- sqlserver时间
- mssql 数据库表行转列,列转行终极方案
- sql-server – 增量更新后统计信息消失
- SQL Server 存储过程分页,按多条件排序
- char,varchar,nvarchar的区别 datetime和smalldatetime的区