创建SQL表以保存多个点之间的距离

时间:2017-09-15 19:41:43

标签: mysql sql database

我正在开发一个项目,我必须保存点之间的距离,我有一个api来获得点之间的距离,但问题是如何在MySql中保存它们。就像我有3分,然后我必须保持每个点的距离从休息所有点到数据库。

为此,我可以简单地创建一个包含n列和n行的表,并保存这样的距离:

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

但问题是我的点数也会在未来增加,在这种情况下我还要添加额外的列也不是一个好习惯。

对此有什么好的方法吗?

1 个答案:

答案 0 :(得分:1)

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

点标签

x坐标

y坐标

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