自从我在大学二年级的时候上数据库设计课已经有一段时间了。而且我在此期间没有做过任何设计,所以我的技能目前充其量是生疏的。我已经开始从事一个涉及铁路时刻表系统的个人项目,并且似乎被困在类似于这样的表格设计上 -
StationTbl
------------
StnName
StnCity
StnCode - {Primary Key}
TrainTbl
---------
TrnName
TrnNumber - {Primary Key}
SourceStn
DestStn
DaysofWeek
TrainHopTbl
--------------
TrnNumber - {Primary Key}
StationCode - {Primary Key}
ArrTime
DepTime
HopIndex
除了 Time 字段和 TrainHopTbl 中的 HopIndex 之外,大多数字段都是字母数字的。如您所见,初步设计非常粗糙,远未完成。
用户将能够根据列车名称/编号或指定源站和目的地站来查找列车。第一个查询可以轻松处理,但我在为第二个搜索编写查询时遇到问题,其中用户提供 src/dest 对,服务器返回在该路线上运行的火车列表。此信息将从 TrainHopTbl 中提取,其中包含特定火车的跳数列表,如下所示 -
TrainHopTbl
--------------
Num StnCode ArrTime DepTime HopIndex
121 WDC 0900 0910 1
121 BAL 1005 1010 2
121 NYC 1145 - 3
如果用户输入WDC/NYC作为 src/dest 对,则查询应返回 Train Number 121,因为它是有效路线。
任何关于数据库设计的指针/链接/书籍建议都会有所帮助。哎呀,在这一点上,即使是可运行的查询或整个重新设计也会有所帮助,因为我似乎陷入了难以摆脱的陈规之中,这完全阻碍了我的进步。