0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 24
|
|
1 | |
База данных городского транспорта06.12.2015, 12:47. Показов 19133. Ответов 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
|
7447 / 4581 / 302
Регистрация: 12.08.2011
Сообщений: 14,285
|
|
07.12.2015, 10:02 | 7 |
У вас должен быть справочник остановок: код, наименование, а "вторая" таблица не нужна, всё это должно быть в таблице Маршруты
В третьей таблице ID чего у вас? p.s. вы так любите английский? причём одно слово - bus
0
|
9113 / 6051 / 591
Регистрация: 27.03.2013
Сообщений: 19,881
|
|
07.12.2015, 12:35 | 8 |
Не всегда верно сие утверждение.
У нас в деревне есть несколько маршрутов тролейбусов, где к примеру вначале по маршруту остановки находятся на одной улице, сворачивает, 3-4 остановки только в одну сторону, потом опять прямо, а вот на обратке там где следуя - Туда нет тех же остановок, а есть 4-5 совершенно других, соответственно маршруты не одинаковые.
0
|
шапоклякистка 8-го дня
|
|
07.12.2015, 12:58 | 9 |
А кто и где говорил об одинаковости маршрутов? Я говорю, обратный маршрут тоже нужно описывать, в той же таблице, что и прямой, продолжая список, аж пока перечисление не вернется снова начальной остановке. А не как у автора темы:
Добавлено через 1 минуту для программистов это вообще-то норма
0
|
7447 / 4581 / 302
Регистрация: 12.08.2011
Сообщений: 14,285
|
|
08.12.2015, 08:54 | 10 |
Для каких-таких программистов?
0
|
шапоклякистка 8-го дня
|
|
08.12.2015, 10:45 | 11 |
Для читающих документацию.
Добавлено через 2 минуты А поскольку читать документацию должен уметь любой программист - то нормой является и то, что студентов учат английскому и мотивируют использовать его в учебных работах.
0
|
7447 / 4581 / 302
Регистрация: 12.08.2011
Сообщений: 14,285
|
|
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
|
7447 / 4581 / 302
Регистрация: 12.08.2011
Сообщений: 14,285
|
|
10.12.2015, 03:36 | 15 |
У вас три таблицы bus, bus1 и stop(buses) причём в третьем случае мы наблюдаем круглые скобки в названии. И что, теперь под каждую четырёхколёсную зверину будет по три таблицы?
0
|
10.12.2015, 03:36 | |
10.12.2015, 03:36 | |
Помогаю со студенческими работами здесь
15
База данных по учету ремонтов компьютерного оборудования: схема данных База данных ветклиника, отображение выбранных данных в другой форме! Слежение за передвижением городского транспорта Расчет маршрута городского транспорта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|