Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 寻找一些聪明的sql策略来处理查找表_Mysql - Fatal编程技术网

Mysql 寻找一些聪明的sql策略来处理查找表

Mysql 寻找一些聪明的sql策略来处理查找表,mysql,Mysql,我想在表中存储不同位置之间的距离 CREATE TABLE `example` ( `id` INT NOT NULL AUTO_INCREMENT , `from` VARCHAR( 8 ) NOT NULL , `to` VARCHAR( 8 ) NOT NULL , `distance` DECIMAL( 6, 2 ) NOT NULL , PRIMARY KEY ( `id` ) , INDEX ( `from` , `to` ) )

我想在表中存储不同位置之间的距离

CREATE TABLE `example` (
    `id` INT NOT NULL AUTO_INCREMENT ,
    `from` VARCHAR( 8 ) NOT NULL ,
    `to` VARCHAR( 8 ) NOT NULL ,
    `distance` DECIMAL( 6, 2 ) NOT NULL ,
    PRIMARY KEY ( `id` ) ,
    INDEX ( `from` , `to` )
 )
测量两点之间的距离时,会将其插入表格中。获得“从”和“到”之间的距离显然非常容易。然而,“到”和“从”之间的距离是完全相同的。我不想为了切换“to”和“from”而再排一行。为了实现这一点,我也不想为这个表创建一个查找表

选择距离的sql将被大量调用,因此它需要是一个高效的查询

我简化了桌子,所以不用担心那些地方是瓦查尔等


任何人都有他们可以推荐的策略吗?

将位置称为“A”和“B”。如果A
这样,每个组合只存储一次,查询起来很快。

将位置称为“A”和“B”。如果A
这样,每个组合只存储一次,而且查询速度很快。

我可以提出一些完全不同的建议吗。每个点都有相对于同一点的坐标,因此在给出两个点时将计算距离,而不会保存在DB中


现在,如果这些是地图/图表上的点,那么另一个解决方案已经就位。

我可以提出一些完全不同的建议吗。每个点都有相对于同一点的坐标,因此在给出两个点时将计算距离,而不会保存在DB中


现在,如果这些是地图/图表上的点,那么另一个解决方案已经到位。

他没有说这些位置有坐标,也没有说它们之间的距离是一条直线。如果地点是城市,距离是最快的公路旅行,它们肯定不是直线。我在回答中提到了图表。无论如何,存储他想要存储的东西的最佳方法不是在关系数据库中。他没有说位置有坐标,也没有说它们之间的距离是直线。如果地点是城市,距离是最快的公路旅行,它们肯定不是直线。我在回答中提到了图表。无论如何,存储他想要存储的东西的最佳方法不是在关系数据库中。