【发布时间】:2015-06-02 05:25:03
【问题描述】:
我在解决面试问题时卡住了。
place C
place A----------Place B
place D
假设我可以通过 3-4 条路径从 A 地到达 B 地(直接路径和间接路径)。
我必须存储它们并检索最短路径。
我可以做表格,但它无法选择最短距离的路径。
我创建了如下表格。
table1:
create LocationDetails(
locnid integer primary key,
locnname text
);
table 2:
create PathDescription(
pathid integer primary key,
startlocnid integer,
endlocnid integer,
distance integer
);
ALTER TABLE PathDescription
ADD CONSTRAINT fk_PathDescription1
FOREIGN KEY (startlocnid)
REFERENCES Persons(locnid);
ALTER TABLE PathDescription
ADD CONSTRAINT fk_PathDescription
FOREIGN KEY (endlocnid)
REFERENCES Persons(locnid);
但现在的问题是选择一条覆盖最小距离的路径 从 A 地到 B 地有很多间接路径。
请帮帮我
谢谢 问候
【问题讨论】:
-
您已经为三个不同的数据库标记了这个问题。那你用的是哪一个?
-
如果您需要在加权图中实现路径查找,那么关系数据库 + sql 一开始就是一个失败的解决方案。
-
@zerkms:请解释一下,否则看起来像一个意见。
-
@FrankHeikens 图结构不太适合关系 DBMS,尤其是当您需要对其执行操作时。您的回答证明:您没有提供纯 SQL 解决方案,而是提供了一个以编程语言实现它的 postgresql 扩展的链接,并且 DBMS 用作虚拟存储(在这种情况下,它并不比纯文本文件好)。
-
@zerkms:不比纯文本文件好?我很确定 Oracle 和 PostgreSQL 在 GIS 和最短路径计算方面不仅仅是纯文本。它可能并不完美,但它几乎适用于任何情况。
标签: mysql oracle postgresql database-design