0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 24
|
|
1 | |
База данных городского транспорта06.12.2015, 12:47. Показов 19071. Ответов 14
Метки нет (Все метки)
Создаю базу данных общественного городского транспорта и столкнулся с несколькими проблемами.
Так как я новичок, то глубоко с MS Access не знаком. Идея в следующем: у меня есть таблица маршрутов. --ID маршрута, --№ автобуса, --название маршрута, --стоимость проезда, --расстояние прямого/обратного маршрута, --количество остановок прямого/обратного маршрута, --интервал хождения автобуса минимум-максимум (возможно заменю расписанием), --время в пути, --начало/конец работы маршрута и рабочие дни маршрута. Так же есть список всех остановок, на которых останавливаются данные автобусы. И для одного маршрута (1 Автобус) есть список остановок в одну сторону (и расстояние от предыдущей до данной остановки). Естественно такие таблицы должны быть для каждого автобуса. Вопрос в следующем. Как правильно связать всю таблицу остановок маршрута (а их будет по 2 - прямой и обратный) с строками в списке маршрутов (первая таблица)? Или это можно сделать иначе и правильнее? И нет ли возможности присваивать ячейке в таблице БД значение одномерного массива?
0
|
06.12.2015, 12:47 | |
Ответы с готовыми решениями:
14
База данных в Асэсе. Движение городского автоуса по маршруту Схема данных базы городского автотранспорта Запрос для городского транспорта Не открывается база данных Access , пишет неразпознаваемый формат базы данных |
шапоклякистка 8-го дня
|
|
06.12.2015, 13:29 | 2 |
Dynortice, мне кажется, стоит изначально принять, что остановка "туда" и остановка "обратно" - это разные остановки;
и маршрутов тоже нет "туда" и "обратно", а есть один кольцевой маршрут. Добавлено через 2 минуты эти поля вообще не нужны, они вычисляются по данным об остановках Добавлено через 1 минуту Не "возможно", а необходимо заменить. Добавлено через 6 минут нет, таблица остановок должна быть одна. Просто сделайте поле для дополнительной пометки тех остановок маршрута, которые считаются "начальной" и "конечной". На некоторых маршрутах конечной вообще не будет. И еще. Часто бывает, что на одной физической остановке останавливаются несколько маршрутов. Я бы вынесла остановки как физические объекты в отдельную таблицу, от которой таблица с перечнем остановок маршрута будет зависимой (1 физическая остановка - много остановок разных маршрутов). Так во-первых база будет нормализованной, а во-вторых, можно будет получить информацию, какие маршруты имеют общие остановки (при вашей организации этого выяснить нельзя - совпадение названия остановок не гарантирует, что остановки физически находятся в одном и том же месте).
0
|
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 24
|
|
06.12.2015, 13:31 [ТС] | 3 |
Есть маршруты, которые рано утром начинают ходить не с первой остановки, или поздно вечером не доезжают до конечной.
Добавлено через 1 минуту Вторая таблица как раз для этого и создана.
0
|
шапоклякистка 8-го дня
|
|
06.12.2015, 13:37 | 4 |
Дальше. Примечание "по требованию" не должно создавать отдельную остановку. Сделайте в таблице остановок маршрута поле типа "флажок" и просто отмечайте необязательные остановки.
Добавлено через 1 минуту Отмечайте такие остановки как необязательные. Добавлено через 1 минуту Верю. Мне отсюда связи между вашими таблицами не видны ) Добавлено через 2 минуты Да, только наверное уже флажком не обойтись, а нужно будет указать тип необязательности. Т.е. созать еще один справочник с выбором "Обязательная", "По требованию", "Только днем" и т.п.
0
|
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 24
|
|
06.12.2015, 13:57 [ТС] | 5 |
texnik-san, Хорошо, тогда начну сначала.
Есть база остановок - 2-ой скрин в первом сообщении. База остановок взята с eway.in.ua вручную. Примечание "по требованию" актуально только для маршрутных такси, но не для автобусов (они останавливаются в обязательном порядке на каждой остановке), ID остановок взяты оттуда же - 1-ый скрин. Есть 2 списка остановок для каждого маршрута (пока буду называть прямым и обратным). В список входит название остановки и её ID. Естественно остановки с одним названием по разные стороны улицы имеют разный ID - 2-ой скрин. Есть расписание для каждого маршрута (при чем в будние и выходные у некоторых маршрутов разное расписание). Взято оно с официального сайта КП "Киевпасстранс". 3-ий скрин. В принципе, как посмотреть маршруты по определённой остановке - это лёгкий запрос. Самое главное - как построить кратчайший маршрут (по времени) с точки А в точку Б (точки А и Б - остановки) имея список остановок, расписание автобусов.
0
|
шапоклякистка 8-го дня
|
|
06.12.2015, 15:32 | 6 |
А это уже задача не базы данных, а теории графов.
Фактически, --остановки - это вершины, --наличие маршрута от одной остановки к другой - ребра, --время движения - длины ребер. Дальше гуглить методы построения кратчайшего маршрута в графе (я не помню уже, дискретку 25 лет тому учила).
0
|
7442 / 4576 / 301
Регистрация: 12.08.2011
Сообщений: 14,241
|
|
07.12.2015, 10:02 | 7 |
У вас должен быть справочник остановок: код, наименование, а "вторая" таблица не нужна, всё это должно быть в таблице Маршруты
В третьей таблице ID чего у вас? p.s. вы так любите английский? причём одно слово - bus
0
|
9108 / 6037 / 590
Регистрация: 27.03.2013
Сообщений: 19,813
|
|
07.12.2015, 12:35 | 8 |
Не всегда верно сие утверждение.
У нас в деревне есть несколько маршрутов тролейбусов, где к примеру вначале по маршруту остановки находятся на одной улице, сворачивает, 3-4 остановки только в одну сторону, потом опять прямо, а вот на обратке там где следуя - Туда нет тех же остановок, а есть 4-5 совершенно других, соответственно маршруты не одинаковые.
0
|
шапоклякистка 8-го дня
|
|
07.12.2015, 12:58 | 9 |
А кто и где говорил об одинаковости маршрутов? Я говорю, обратный маршрут тоже нужно описывать, в той же таблице, что и прямой, продолжая список, аж пока перечисление не вернется снова начальной остановке. А не как у автора темы:
Добавлено через 1 минуту для программистов это вообще-то норма
0
|
7442 / 4576 / 301
Регистрация: 12.08.2011
Сообщений: 14,241
|
|
08.12.2015, 08:54 | 10 |
Для каких-таких программистов?
0
|
шапоклякистка 8-го дня
|
|
08.12.2015, 10:45 | 11 |
Для читающих документацию.
Добавлено через 2 минуты А поскольку читать документацию должен уметь любой программист - то нормой является и то, что студентов учат английскому и мотивируют использовать его в учебных работах.
0
|
7442 / 4576 / 301
Регистрация: 12.08.2011
Сообщений: 14,241
|
|
09.12.2015, 02:34 | 12 |
А при чём тут наименование полей? А при чём тут англоязычный Акцесс? Что касается меня, то я прекрасно использую русский и другим рекомендую не забывать свой язык. Не путайте холодильник и огурец.
Так что никакие программисты не должны именовать поля на английском языке, да и к тому же все их называть по названию основной сущности своей БД. Это дурной вкус. Почитайте про соглашение имён например http://www.accessoft.ru/templa... ?mn_id=362 Добавлено через 2 минуты Основная часть документации на русском языке, мы не в 90-е живём, но даже и тогда была прекрасная справка в 97-м офисе на русском языке.
0
|
шапоклякистка 8-го дня
|
|
09.12.2015, 09:12 | 13 |
Луше быть изначально готовым на защите показать свою базу на любой версии офиса, чем обнаружить, что база, безупречно работавшая дома, внезапно перестала работать на защите, и исправлять что-либо уже поздно.
0
|
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 24
|
|
09.12.2015, 13:35 [ТС] | 14 |
alvk, Ну, по поводу русского ничего не буду говорить, так как тут на вкус и цвет.
на английском мне стало привычней. А поля так названы только потому, что у меня помимо автобусов, будут троллейбусы, трамваи, маршрутки, соответственно, я их еще не добавил.
0
|
7442 / 4576 / 301
Регистрация: 12.08.2011
Сообщений: 14,241
|
|
10.12.2015, 03:36 | 15 |
У вас три таблицы bus, bus1 и stop(buses) причём в третьем случае мы наблюдаем круглые скобки в названии. И что, теперь под каждую четырёхколёсную зверину будет по три таблицы?
0
|
10.12.2015, 03:36 | |
10.12.2015, 03:36 | |
Помогаю со студенческими работами здесь
15
База данных по учету ремонтов компьютерного оборудования: схема данных База данных ветклиника, отображение выбранных данных в другой форме! Слежение за передвижением городского транспорта Расчет маршрута городского транспорта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |