在 sql 数据库中存储未排序对的更好方法

Better way to store unsorted pairs in sql database

数据如下所示:

未排序对(x,y)(两个位置)+值(这两个位置之间的距离)

A B 4
A C 13
B C 1

我的问题是将其保存在 SQL 数据库中的最佳方法是什么?我可以保持原样(未分类)。然后,如果我想确定点 B 与数据库中每个其他位置的距离(换句话说,每对包含 B 的值),我需要查看两列(假设它们的名称是 xy).

select * 
from table 
where x = B or y = B

另一方面,如果我保持这样:

A B 4
A C 13
B A 4
B C 1
C A 13
C B 1

那我的查询就简单了

select * 
from table 
where x = B

但是数据量是原来的两倍。还有其他想法吗?还有其他技术(mongodb)吗?

如果这真的是关于位置和距离,而不仅仅是一个假设的例子,我觉得像第二种情况中提到的那样存储数据是有意义的,因为在现实世界中,从 A 到 B 的距离如果考虑单行道或其他此类原因,则不一定必须与B到A的距离相同。

另一方面,如果您认为距离为 "as the crow flies", you might want to consider Spatial Data Types, as available natively in SQL Server. I am no good with Postgres, but find that the same is available through this extender