数据库距离城市表

时间:2011-03-10 11:42:27

标签: database-design duplicates distance

我需要一个DB模型,它可以处理具有2个值的独占PK。

假设我们有3个城市并且它们都已连接。

距离为:

    (1) - >(2)=(2) - >(1)= 5
    (1) - >(3)=(3) - >(1)= 3
    (2) - >(3)=(3) - >(2)= 4

复杂的一点是,我不想要重复的条目!

提前谢谢

3 个答案:

答案 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