mysql - SQL表创建以节省多点之间的距离

标签 mysql sql database

我正在做一个项目,我必须保存点之间的距离,我有一个 api 来获取点之间的距离,但问题是如何将它们保存在 MySql 中。就像我有 3 个点,那么我必须将每个点与其余所有点的距离保存到数据库中。

为此,我可以简单地制作一个 n 列和 n 行的表格,并像这样保存距离:

| | a | b | c |
---------------
|a| 0 | 6 | 8 |  
|b| 6 | 0 | 5 |
|c| 8 | 5 | 0 |

但问题是我的点数将来也会增加,在那种情况下我将不得不添加额外的列,这不是一个好的做法。

有什么好的方法吗?

最佳答案

Cartesian space 中存储为点,如果是二维,则为 (x,y),如果是三维,则为 (x,y,z)。然后您可以创建一个简单的算法来在需要时计算距离数组。所以表结构变成:

点标签

x坐标

y坐标

这将是完全可扩展的并且非常灵活。例如,您可以通过 b 计算点 a 到 z 的距离。

关于mysql - SQL表创建以节省多点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46246502/

相关文章:

mysql - pgloader 未将数据从 MySQL 导入到 Postgres

mysql - SQL 创建查询并重定向到文件

sql - Postgresql ORDER BY 空格

mysql - MySQL中的case语句

database - MySQL 多个依赖子查询,非常慢

mysql - 使用一个数据库的信息更新另一个数据库的信息

php - 基于存储的变量进行比较

当连接断开时,Python MySQL .cursor() 会卡住

iOS实现原理

mysql - 如果子查询在 MySQL 中返回多于 1 行,如何将 JSON 放入列数据中