我需要一个DB模型,它可以处理具有2个值的独占PK。
假设我们有3个城市并且它们都已连接。
距离为:
(1) - >(2)=(2) - >(1)= 5
(1) - >(3)=(3) - >(1)= 3
(2) - >(3)=(3) - >(2)= 4
复杂的一点是,我不想要重复的条目!
提前谢谢
答案 0 :(得分:1)
您需要三列。 SourceID,DestID和距离。在SourceID中存储较小的ID号,并在(SourceID,DestID);
上创建唯一约束答案 1 :(得分:0)
强制执行订单以防止重复。无论您是存储城市名称还是城市ID号,相同的策略都有效。
CREATE TABLE distances (
start_city VARCHAR(35) NOT NULL CHECK (start_city < end_city),
end_city VARCHAR(35) NOT NULL,
km_distant INTEGER NOT NULL CHECK (km_distant > 0),
PRIMARY KEY (start_city, end_city)
);
答案 2 :(得分:0)
您可以使用纬度和经度来计算距离。见here