И опять я вспомнил о своей глупой идее создать БД по линиям и станциям московского (и любого другого) метрополитена. Такая БД должна содержать всю информацию об истории эксплуатации станций (начало, конец, возобновление, переименование) и линий. Конечный итог – возможность нарисовать схему линий метро на любой день (начиная с 1935 года).
Кроме того, такая БД должна содержать характеристики станций (тип, глубина и т.п.) и перегонов (длина). Всяческие депо, съезды и тупики пока можно отложить до лучших времён.
Но и сформулированная задача на поверку оказывается весьма нетривиальной. Во-первых, какие основные объекты (сущности, таблицы) мы имеем? Казалось бы, достаточно линий и станций, да? Ничего подобного.
Первый объект – это станция. Станция – то, что рисуется на схеме метро.
Второй объект – это линия. Линия тоже рисуется на схеме метро. Пока всё понятно.
Третий объект – это станционный зал (формулировка лично моя). Дело в том, что существуют совмещённые пересадочные станции (станции типа "Китай-город"). При этом пути одной и той же линии расположены в разных станционных залах. Если при отрисовке линий ориентироваться на станционные залы, мы должны были бы сказать, что к Калужско-Рижской линии относятся две станции "Китай-город". Но это противоречит нашим привычкам, да и здравому смыслу. Единственный выход из создавшегося положения – считать, что к линии относится станция, а физически станция может состоять из одного или нескольких станционных залов (именно к станционному залу относятся такие характеристики, как тип, глубина и т.п.).
При этом становится очевидно, что одна станция в один и тот же момент времени может относиться к нескольким линиям. Связь между линиями и станциями – это тоже отдельная таблица.
Четвёртый объект – перегон. Перегон – тоже вещь хитрая. Она относится к линии и соединяет две станции (не станционных зала). При этом нельзя забывать, что один и тот же перегон в разное время может относиться к разным линиям. Например, перегон между станциями "Александровский сад" и "Арбатская"-мелкая (использую современные названия) с 1935 до 1938 гг. относился к Сокольнической линии, с 1938 по 1953 – к Арбатско-Покровской, с 1953 по 1958(?) был закрыт, а с 1958 по настоящее время относится к Филёвской линии (и на этом его история, похоже, не окончена).
Пятый (и самый непонятный) объект – это переход! Во-первых, что он соединяет? Переход физически расположен между станционными залами, но формально рисуется между станциями. Во-вторых, между двумя станционными залами может быть несколько переходов. И тут надо определиться, что мы называем различными переходами. Например, переходы между "Театральной" и "Площадью Революции". Два из них выходят из одного места в середине станции "Площадь Революции", но дальше разделяются, и на "Театральную" они приходят в совершенно разных местах. Третий переход – через общий наземный вестибюль; считать ли его переходом?
В общем, вопросов очень много.
Я жив
[Print]
kv75