Sql 数据库方案问题

Sql 数据库方案问题,sql,join,Sql,Join,我有一个理论上的数据库方案,它存储的信息类似于谷歌地图。它告诉你如何从一个地方到另一个地方,但它不仅仅是开车,它告诉你如何通过各种交通方式(步行、自行车、汽车、公共汽车、火车、飞机、轮船等)到达那里 我在想,每一张桌子都可以有自己的桌子 汽车: 品牌、型号、年份、MPG、驾驶列车等 飞机: 品牌、型号、喷气式飞机/道具、最大速度、最大高度、座椅、浴室等 船: 船舱的品牌、型号、长度、宽度、最大深度、最大速度、有游泳池等 等等等等 然后,一个“传输”表: 车手ID、行程ID、交通ID、交通类型(汽

我有一个理论上的数据库方案,它存储的信息类似于谷歌地图。它告诉你如何从一个地方到另一个地方,但它不仅仅是开车,它告诉你如何通过各种交通方式(步行、自行车、汽车、公共汽车、火车、飞机、轮船等)到达那里

我在想,每一张桌子都可以有自己的桌子

汽车: 品牌、型号、年份、MPG、驾驶列车等

飞机: 品牌、型号、喷气式飞机/道具、最大速度、最大高度、座椅、浴室等

船: 船舱的品牌、型号、长度、宽度、最大深度、最大速度、有游泳池等

等等等等

然后,一个“传输”表:

车手ID、行程ID、交通ID、交通类型(汽车、船、飞机等)、到、从、距离

行程的每一段都将是表格中不同的一行。每次行程都是一个独特的车手ID/行程ID对,行程的每一段都会分配一个不同的车手ID。这种设置有意义吗


如果是这样,我将如何进行查询,以显示有关所有旅行的所有信息?是否存在某种条件联接机制?

您可能正在查找
Union
关键字。它将连接不同形状和大小的查询

如果给定相位的跳闸时间为一列,则可以将其相加,得出总跳闸时间


你可能想看看谷歌公交出行计划。可能会找到北卡罗来纳州夏洛特的一个。它们还有一个链接,可以让你们最小化步行、换车或公交时间。

我认为你们从错误的角度看问题。如果你的申请是为了给出从A点到B点的方向或计划其他路线,你应该关注它。没人关心飞机的最大速度,更重要的是从A到B所需的时间。同样的,卫生间的数量,你有没有跳过一架飞机,因为它只有5个卫生间?:)更重要的是,您无法获取所有这些数据来填充您的数据库


忘了提到这种应用程序必须基于高级图论alghoritms,在简单的sql查询中,即使使用动态连接,也无法获得结合不同类型传输的所有路径,无论您如何存储数据

并非所有值得做的事情都可以用SQL完成。