我必须为巴士时刻表设计一个数据库。实体:
- 总线 (idBus*)
- 停止 (idStop*,stopDescription)
- 线路 (idLine*,lineDescription)
- 位置(纬度,经度)
一些限制如下:
- 一条线路可以运行多条总线(因此 BUS:LINE = N:1)
- 一条 Line 有很多 Stops ,从一个 Stop 开始经过很多 Lines (因此 STOP:LINE = N:N)
- 一辆公共汽车从许多站点经过,反之亦然(因此 BUS:STOP = N:N)
- 止损有一个位置(因此 STOP:POSITION = N:N)
- 总线有多个位置(因此 BUS:POSITION = 1:N)
ER图
建模的一个示例是 STOP-POSITION 关系的桥接表,如下所示:STOP_POSITION(idStop*,lat,lon) 而idStop是外键。
一般来说:
如果我有一个idBus
我希望能够获得相关的idLine
.
如果我有一个idBus
和一个idStop
我想知道巴士的行程信息(下一站、到达时间、方向)
如果我有一个idBus
和一个idLine
我想知道巴士的行程(所有公共汽车将经过的站点及其顺序)
问题
- 考虑 BUS-STOP 关系时会出现问题,因为当我考虑知道 Stop 的 id 和 Bus 的 id 时,我会知道许多属性,如 Direction、NextStop 的 ID、TimeOfArrival ..
我应该如何建模那些属性?
例如,每辆巴士都从多个站点经过,并且进程由一个属性表示(例如progressiveStop)。我应该如何建模这个属性? - 对 LINE-STOP 的关联进行建模真的有意义吗?
- 在数据库中存储动态数据真的有意义吗?我指的是 BUS-STOP 关系。