Mysql 如何设计这一点;巴士站;数据库

Mysql 如何设计这一点;巴士站;数据库,mysql,database,Mysql,Database,我想设计一个关于公交车站的数据库。该市大约有60辆公交车,每辆公交车都包含以下信息: 忙碌的 巴士名 途中的车站列表(前进和后退) 该数据库在搜索时必须高效,例如,当用户想要列出经过A站和B站的公交车时,它必须快速运行 在我的第一个想法中,我想将站点放在一个单独的表中,包括StationId和Station,然后站点列表将包含这些StationId。我认为这可能有效,但不确定是否有效 如何设计这个数据库 非常感谢。您是否查看过符合您要求的模式?您是否查看过符合您要求的模式?(这听起来像是家庭

我想设计一个关于公交车站的数据库。该市大约有60辆公交车,每辆公交车都包含以下信息:

  • 忙碌的
  • 巴士名
  • 途中的车站列表(前进和后退)
该数据库在搜索时必须高效,例如,当用户想要列出经过A站和B站的公交车时,它必须快速运行

在我的第一个想法中,我想将站点放在一个单独的表中,包括StationId和Station,然后站点列表将包含这些StationId。我认为这可能有效,但不确定是否有效

如何设计这个数据库

非常感谢。

您是否查看过符合您要求的模式?

您是否查看过符合您要求的模式?

(这听起来像是家庭作业,所以我不会给出完整答案。)

似乎您只需要使用3个表在公交车和车站之间建立多对多关系。带有两个内部连接的查询将为您提供在两个特定站点停靠的公交车。

(这听起来像是家庭作业,所以我不会给出完整答案。)


似乎您只需要使用3个表在公交车和车站之间建立多对多关系。带有两个内部联接的查询将为您提供在两个特定站点停靠的公交车。

您认为好的,在某些情况下可能有效,也可能无效。我认为您应该创建表1(BusID,BusName)表2(Station List,Bus Id)这样的表。我想这会有帮助的。并尝试在这两个表之间使用联接来获得结果。如果可能的话,还有一件事要做,那就是尝试对表进行规范化,这将对您有所帮助

你所认为的是好的,在某些情况下可能有效,也可能无效。我认为您应该创建表1(BusID,BusName)表2(Station List,Bus Id)这样的表。我想这会有帮助的。并尝试在这两个表之间使用联接来获得结果。如果可能的话,还有一件事要做,那就是尝试对表进行规范化,这将对您有所帮助

我想要3张桌子:

公共汽车 车站 公共汽车站

“bus”代表名称,“stations”代表站id和名称,“bus_stations”连接其他两张表,其中包含bus_id、station_id和station_id

这可能比你真正需要的更复杂,但如果你将来需要知道一辆公共汽车的完整轨迹,而且,从巫婆站一辆公共汽车到达“B站”,这将是有用的

60辆公交车不会对性能产生太大影响。

我选择3张表:

公共汽车 车站 公共汽车站

“bus”代表名称,“stations”代表站id和名称,“bus_stations”连接其他两张表,其中包含bus_id、station_id和station_id

这可能比你真正需要的更复杂,但如果你将来需要知道一辆公共汽车的完整轨迹,而且,从巫婆站一辆公共汽车到达“B站”,这将是有用的

不过,60路公交车对性能的影响不会太大。

我愿意

bus_id          int
path            varchar(max)
如果公共汽车经过以下车站(按此顺序):

然后我会在路径设置为的地方输入一个记录

'-01-03-09-17-28-'
当有人想找一辆公共汽车从03站到28站时,我的select语句是

select * from buses where path like '%-03-%-28-%'
不可扩展,不优雅,但非常简单,在试图找到路线时不会像疯了一样翻动表格。当然,只有当有一辆公共汽车经过这两个车站时,它才会起作用。

我会破解它

bus_id          int
path            varchar(max)
如果公共汽车经过以下车站(按此顺序):

然后我会在路径设置为的地方输入一个记录

'-01-03-09-17-28-'
当有人想找一辆公共汽车从03站到28站时,我的select语句是

select * from buses where path like '%-03-%-28-%'

不可扩展,不优雅,但非常简单,在试图找到路线时不会像疯了一样翻动表格。当然,只有当有一辆公共汽车经过这两个车站时,它才会起作用。

一些关于我年轻时乘坐伦敦公共汽车旅行的随机想法,因为我认为这可能相当复杂

您可能需要以下实体:

  • 公共汽车——物理实体,具有特定的型号(即特定的座位容量和残疾人通道,以及尺寸等)和VIN
  • 公共汽车站——公共汽车停靠的位置。通常公共汽车站是成对的,每边一个,但有时是单向的
  • 路线——一系列公共汽车站及其之间的路线(存在多条可能的道路)。有时公共汽车不走整条路线,或跳站(快速服务)。一条路线只是一个方向,还是两个方向都有?也许一条路线实际上是一个环路,而不是一条往返路线
  • 服务——沿着特定路线行驶的公共汽车
  • 计划运行——特定服务上的总线遵循特定路线时发生的事件。它从路线的某一部分开始,在另一部分结束,可能会跳过某些站点(见3)
  • 实际运行——特定的总线跟随特定的计划运行。什么时候开始,什么时候到达特定的站点,有多少人上下车,他们有什么样的车票

  • 一些关于我年轻时乘坐伦敦公交车旅行的随机想法,因为我认为这可能相当复杂

    您可能需要以下实体:

  • 公共汽车——物理实体,具有特定的型号(即特定的座位容量和残疾人通道,以及尺寸等)和VIN
  • 公共汽车站——公共汽车停靠的位置。通常公共汽车站是成对的,每边一个,但有时是单向的
  • 路线——一系列公共汽车站及其之间的路线(存在多条可能的道路)。有时公共汽车不走整条路线,或跳站(快速服务)。路线只是一个方向吗,