我正在开发一个项目,我必须保存点之间的距离,我有一个api来获得点之间的距离,但问题是如何在MySql中保存它们。就像我有3分,然后我必须保持每个点的距离从休息所有点到数据库。
为此,我可以简单地创建一个包含n列和n行的表,并保存这样的距离:
| | a | b | c |
---------------
|a| 0 | 6 | 8 |
|b| 6 | 0 | 5 |
|c| 8 | 5 | 0 |
但问题是我的点数也会在未来增加,在这种情况下我还要添加额外的列也不是一个好习惯。
对此有什么好的方法吗?
答案 0 :(得分:1)
作为点存储在Cartesian space中,如果是两个维,则为(x,y),如果是三维,则为(x,y,z)。然后,您可以创建一个简单的算法来在需要时计算距离数组。因此表结构变为:
点标签
x坐标
y坐标
这将是完全可扩展且非常灵活的。例如,您可以通过b计算从a点到z点的距离。