2011-03-10 52 views
0

我需要一个数据库模型,它可以处理具有2个值的独占PK。数据库距离城市表

可以说我们有3个城市,他们都连接在一起。

的距离为:

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

复杂的一点是我不想重复输入!

Thx提前

回答

1

您需要三列。 SourceID,DestID和距离。在SourceID中存储较小的ID号并在(SourceID,DestID)上创建一个唯一约束;

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) 
); 
相关问题