Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2009, 14:13   #1
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
Восклицание Структура Базы Данных

Пожалуйста, помогите разобраться со структурой БД.
Есть Сайт, предназначенный для поиска и просмотра расписания электричек. На нём находится форма со следующими полями: «Станция отправления», «Станция назначения», «Дата» и кнопка «Найти». По введённым данным должен производится запрос к БД на выборку интересующей пользователя информации.
Так вот я не как не могу понять какие следует создать Таблички и какие поля они должны содержать.

Из моих собственных соображений там должны быть таблички:
1.Станции (Содержит поля: ID, Имя станции, Список Электричек проходящих через данную станцию.)
2.Электрички (Содержит поля: ID, Номер электрички (хотя его можно использовать как ID), Дата следования электрички.)

Так вот, при данной структуре я никак не могу составить корректные запросы. Но думаю есть и другие варианты структуры БД, которые позволят сделать выборку.
Прошу помочь разобраться!

PS: БД на основе MySQL, язык программирования PHP.
jeka5555 вне форума Ответить с цитированием
Старый 20.03.2009, 15:27   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

не очень ясно - как вы СПисок электричек собираетесь хранить?
приведите тип данных?
на вашем месте бы делал так
1. Электрички
2. Станции
3. таблица соответсвия - станций электричкам - или наоборот
ADSoft вне форума Ответить с цитированием
Старый 20.03.2009, 15:33   #3
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

ну лично я представляю себе такую структуру:

таблица рейсов:
идентификатор записи (номер строки) - незначащее поле
номер рейса
идентификатор пункта отправления
время отправления
идентификатор пункта назначения

таблица станций:
идентификатор станции
название
вхождения в пути или рейсы



не самая продуманная структура, но для начала прокатит
свободен...
wall66 вне форума Ответить с цитированием
Старый 20.03.2009, 15:52   #4
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
не очень ясно - как вы СПисок электричек собираетесь хранить?
приведите тип данных?
В этом у меня тоже возникали затруднения. Но тут два варианта:
1) Поле "Список электричек" имеет тип "text" где каждая электричка отделена от другой каким-либо знаком, например: №22 | №44 | №55 и т.д. а в PHP потом искать все символы " | " и формировать массив электричек для данной станции.
2) Создавать таблицу для каждой станции, в каждой из таких таблиц будет разное количество полей, в зависимости от кол-ва электричек проходящих через данную станцию.
jeka5555 вне форума Ответить с цитированием
Старый 20.03.2009, 16:02   #5
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
ну лично я представляю себе такую структуру:

таблица рейсов:
идентификатор записи (номер строки) - незначащее поле
номер рейса
идентификатор пункта отправления
время отправления
идентификатор пункта назначения

таблица станций:
идентификатор станции
название
вхождения в пути или рейсы

не самая продуманная структура, но для начала прокатит
Не совсем понятно, например что означает "вхождения в пути или рейсы", но тем неменее спасибо за ответ!

И думаю что с такой структурой:
Цитата:
Сообщение от wall66 Посмотреть сообщение
"идентификатор пункта отправления
время отправления
идентификатор пункта назначения"
будет невозможным узнать расписание электрички для станции на пути следования электрички, а только для тех станций из которых электрички отправляются или прибывают. Поэтому нужно что-то добавить в данную структуру, или, может, что-то совсем другое предложит кто-нибудь?
jeka5555 вне форума Ответить с цитированием
Старый 20.03.2009, 23:07   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Цитата:
Сообщение от jeka5555 Посмотреть сообщение
В этом у меня тоже возникали затруднения. Но тут два варианта:
1) Поле "Список электричек" имеет тип "text" где каждая электричка отделена от другой каким-либо знаком, например: №22 | №44 | №55 и т.д. а в PHP потом искать все символы " | " и формировать массив электричек для данной станции.
при такой организации вопроса - SQL запросы нереально организовать на выборку....
ADSoft вне форума Ответить с цитированием
Старый 21.03.2009, 16:25   #7
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
при такой организации вопроса - SQL запросы нереально организовать на выборку....
LIKE '%№22%' никто не отменял
свободен...
wall66 вне форума Ответить с цитированием
Старый 21.03.2009, 21:14   #8
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
LIKE '%№22%' никто не отменял
Если можно пример запроса приведи.
jeka5555 вне форума Ответить с цитированием
Старый 22.03.2009, 08:17   #9
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от jeka5555 Посмотреть сообщение
Если можно пример запроса приведи.
"select * from table t where t.Список электричек like '%№22%'"
свободен...
wall66 вне форума Ответить с цитированием
Старый 23.03.2009, 08:24   #10
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

Цитата:
Сообщение от wall66 Посмотреть сообщение
"select * from table t where t.Список электричек like '%№22%'"
А если нужно наоборот, не зная номера электрички, только по введённой станции и дате вытащить из базы все электрички проходящие в указанную дату через данную станцию, да ещё и напрвление движение электрички нужно как-то узнавать, что бы отбросить те которые едут в другом напрвлении.
jeka5555 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура данных и защита листа Legame Microsoft Office Excel 47 25.06.2019 11:03
структура таблицы базы данных с именем WORKER Vollmond36 Помощь студентам 1 01.12.2008 22:20
Структура данных : сеть DesolationJam Помощь студентам 2 23.01.2008 10:41