SQL数据库实现最优坐地铁方案(3)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQL 实现最优坐地铁方案(3)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:SQL数据库
黑客防线网安网讯:  结果, 2/3 是换乘次数(应该减一, 将上面代码中初始化 line_count 的地方从1改成0即可):  3{1.广州东-> 2.体育西-> 3.珠江新城-> 4.客村)-> 2{5.客村-> 4.中大} 2 5  1{1.广州东-> 2...

  结果, 2/3 是换乘次数(应该减一, 将上面代码中初始化 line_count 的地方从1改成0即可):

  3{1.广州东-> 2.体育西-> 3.珠江新城-> 4.客村)-> 2{5.客村-> 4.中大} 2 5

  1{1.广州东-> 2.体育中心-> 3.体育西)-> 3{2.体育西-> 3.珠江新城-> 4.客村)-> 2{5.客村-> 4.中大} 3 7

  数据的问题, 我的算法依赖于 orderid 来搜索下一站, 如果这个不连续, 则无法搜索下一站

  所以把数据改成下面的就行了

  SQL code 

DECLARE @tb TABLE(
    lineID int, state nvarchar(10), orderid int)
INSERT @tb
SELECT 1, N'广州东', 1  UNION ALL
SELECT 1, N'体育中心', 2  UNION ALL
SELECT 1, N'体育西', 3  UNION ALL
SELECT 1, N'烈士陵园', 4  UNION ALL
--SELECT 1, N'公园前', 6  UNION ALL  -- 这里站点断开了, 我的搜索要求连续
--SELECT 1, N'西门口', 7  UNION ALL
SELECT 1, N'公园前', 5  UNION ALL  -- 这里站点断开了, 我的搜索要求连续
SELECT 1, N'西门口', 6  UNION ALL
SELECT 2, N'火车站', 1  UNION ALL
SELECT 2, N'纪念堂', 2  UNION ALL
SELECT 2, N'公园前', 3  UNION ALL
SELECT 2, N'中大', 4  UNION ALL
SELECT 2, N'客村', 5  UNION ALL
SELECT 2, N'琶洲', 6  UNION ALL
SELECT 2, N'万胜围', 7  UNION ALL
SELECT 3, N'广州东', 1  UNION ALL
SELECT 3, N'体育西', 2  UNION ALL
SELECT 3, N'珠江新城', 3  UNION ALL
SELECT 3, N'客村', 4  UNION ALL
SELECT 3, N'市桥', 5  UNION ALL
SELECT 4, N'万胜围', 1  UNION ALL
SELECT 4, N'金洲', 2


  修改后的执行结果(换乘数已经改成初始化为0)

  3{1.广州东-> 2.体育西-> 3.珠江新城-> 4.客村)-> 2{5.客村-> 4.中大} 1 5

  3{1.广州东-> 2.体育西)-> 1{3.体育西-> 4.烈士陵园-> 5.公园前)-> 2{3.公园前-> 4.中大} 2 6

  1{1.广州东-> 2.体育中心-> 3.体育西-> 4.烈士陵园-> 5.公园前)-> 2{3.公园前-> 4.中大} 1 6

  1{1.广州东-> 2.体育中心-> 3.体育西)-> 3{2.体育西-> 3.珠江新城-> 4.客村)-> 2{5.客村-> 4.中大} 2 7

  如果 orderid 在实际数据中确实有不连续的问题, 则可以在处理之前先把数据导到临时表, 生成连续的 orderid, 再用我的算法来查询结果这次的算法相比之前的算法有改进, 只有换乘才会判断是否已经走过此线路, 其他方面也略有调整, 应该比以前的好你可以测试一下!

  实际使用时, 算法上可以稍做调到:

  1. 直接计算出 next_orderid, 而不是每次用 flag 去算, 这样可以提高 join 效率

  2. 表变量改成临时表, 这样可以在相关的列上建立索引, 从而更快的与原表 join (当然, 原表相关的列上也要有索引)

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-10640-1.html
网站维护教程更新时间:2012-03-21 03:07:10  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer