Прошло много времени с тех пор, как я изучал дизайн баз данных на втором курсе Uni. и пока что я не делал никаких проектов, поэтому мои навыки в лучшем случае ржавые на данный момент. Я начал работать над личным проектом, включающим систему железнодорожных расписаний, и, похоже, застрял в дизайне стола, который напоминает что-то вроде этого -
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 и HopIndex в TrainHopTbl. Как видите, предварительный дизайн очень груб и далек от завершения.
Пользователи смогут находить поезда либо по названию / номеру поезда, либо указав источник и станцию назначения. С первым запросом можно легко справиться, но у меня возникают проблемы при написании запроса для второго поиска, когда пользователь дает пару 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, тогда запрос должен возвращать номер поезда 121, поскольку он является действительным маршрутом.
Любые советы по указателям / ссылкам / книгам по дизайну базы данных будут полезны. Черт, на этом этапе даже работающие запросы или целые перепроектирования были бы полезны, так как я, кажется, застрял в колее, из которой мне трудно выйти, и это полностью остановило мой прогресс.