我需要一個數據庫模型,它可以處理具有2個值的獨佔PK。數據庫距離城市表
可以說我們有3個城市,他們都連接在一起。
的距離爲:
(1) - >(2)=(2) - >(1)= 5
(1) - >(3)=(3) - >(1)= 3
(2) - >(3)=(3) - >(2)= 4
複雜的一點是我不想重複輸入!
Thx提前
我需要一個數據庫模型,它可以處理具有2個值的獨佔PK。數據庫距離城市表
可以說我們有3個城市,他們都連接在一起。
的距離爲:
(1) - >(2)=(2) - >(1)= 5
(1) - >(3)=(3) - >(1)= 3
(2) - >(3)=(3) - >(2)= 4
複雜的一點是我不想重複輸入!
Thx提前
您需要三列。 SourceID,DestID和距離。在SourceID中存儲較小的ID號並在(SourceID,DestID)上創建一個唯一約束;
強制執行命令以防止重複。無論您是存儲城市名稱還是城市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)
);
您可以使用緯度和經度計算距離。見here