第一节结对作业构思
1、数据库
数据库中存在两张表,一张是站点表,属性包括站点编号,站点名称,站点所属线路。第二张表是线路交点表,属性包括第一条线路,第二条线路,站点名称。
2、假设状况
查询分为三种情况。第一种,在同一条线路上的站点,其中包括起始站或终点站都是转乘点的情况;第二种,分布在两条线上的起始站和终点站,且起始站和终点站所在的线路存在交点;第三种情况,起始站和终点站在不同的两条线路上,且两点之间不存在交点,即需要第三条线作为中转。
3、设计
第一种情况中,得到查询输入的起始站和终点站,查询line表,在二者的所属线路相同的情况下,得到二者差值的绝对值即可得到站数,然后输出其中的站点名。
第二种情况中,得到查询输入的起始站和终点站,查询line表,得到二者的所属线路,然后查询线路交点表,将得到所属线路作为条件查询得到线路交点的中转站,然后再回到第一张表line中,以起始站属性和中转站定位与起始站线路相同的中转站,然后求出起始站到中转站的站点,再以终点站线路和中转站与终点站线路相同的中转站,求出中转站到终点站的站点名,最后合并到同一个list中即可。
第三种情况中,得到查询输入的起始站和终点站,查询line表,得到二者的所属线路,然后查询线路交点表,将得到的中点站作为条件查询,得到的值应当为空。在这种情况下,我们应该再次查询线路交点表,将得到的起始站线路作为第一条记录的一线路,将得到的终点站线路作为第二条记录的二线路,求满足第一条记录第二条线路等于第二条记录第一条线路的线路中间线路并记录。即
(1 a 2)
(2 b 3)
(2)
然后依旧在本张表中,以起始站线路作为第一线路,将中间线路作为终点线路,查询线路交点,得到第一个中转点;然后以第一个中转点为起始站,终点站做第二线路,查询线路交点,得到第二个中转点。然后在line表中,查询起始站到第一个中转站的中间站名;之后查询第一个中转站到第二个中转站的中间站名;最后查新第二个中转站到终点站的站名。最后将三部分放入同一个list中。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击