powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование БД
2 сообщений из 2, страница 1 из 1
проектирование БД
    #34055224
_axl86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня. Мне не обходимо спроектировать базу данных( и реализовать ), которая будет отражать перемещение определенного товара по городам. Задача примерно такая: есть множество единиц товара, каждй из которых имеет уникальный номер. В каждый момент времени товар может находиться либо в каком-то городе( список определён ) либо, в перелете из одного в другой. Поиск осуществляется следующим образом: выбирается город, а потом из списка товаров, находящихся там или находящихся на рейсе который летит в этот город, выбирается конретная вещь. На выбранный товар должна
отбражаться информация: где находится, текстовой комментарий, и номер будущегго рейса, если товар сейчас в воздухе, номер рейса, дата и пункты прибытия-отправления, будущий рейс это рейс который будет осуществлен после выполнения текущего рейса, после наступления даты отправки.
Я думаю сделать примерно так, создается три таблицы: Продукция, Рейсы, СписокГородов. Список рейсов содержит следующую информацию: уникальный № рейса, даты и пункты отправления-прибытия. Список продукции: № текущего рейса, № будуещего рейса, город, дата прибытия(эти 2 колонки равны колонкам город и дата прибытия из таблицы Рейсы), ну и ёщё несколько колонок характеристик товара.
При выполении запроса списка товаров находящихся в городе, выполняем поиск в таблице Рейсы по колонке "Город", далее проверяем колонку номерРейса, если она пустая, значит товар в городе, смело добавляем этот ящик в список. Если же номер ТекущегоРейса непустой, то здесь все сложнее, значит он погружен на рейс летящий в этот город. Потом надо проверит если текущая дата больше даты прибытия самолета, но меньше даты отправления БудущегоРейса(это рейс который будет выполнен сразу за ТекущимРейсом :)) интересно, это кто-нибудь ёщё читает или все уже махнули рукой? :) ), тогда ячейке ТекущийРейс присваиваем значение БудущегоРейса, и обнуляем БудущийРейс. Если же текущая дата меньше даты прибытия БудущегоРейса, тогда присваиваем колонке "Город" значение пункта назначения БудущегоРейса и обнуляем номера Текущего и БудущегоРейса. Это сделано для того чтобы, если инфу о ящике не запрашивали такое долгое время, что успели выполниться оба рейса. В общих чертах вроде все, то есть есть конечно,есть ёщё много тонкостей, которые нужно учесть, но это потом, когда я буду уверен, что основа верная, поэтому пишите что думаете, буду благодарен за любые комментарии по теме, это у меня первый опыт подобной работы, а посоветоваться не с кем, есть препод по БД в универе, но он не станет все это выслушивать :(
...
Рейтинг: 0 / 0
проектирование БД
    #34055371
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам бы чего-нибудь про нормализацию почитать.
Конкретно по задаче - как минимум таблицу "продукция" лучше делать по-другому.
Как, скажем, Вы заведете товар, который просто лежит в городе и не был ни в одном рейсе?
Кроме того, вся история товара, в каких рейсах и как его возили по городам и весям - у Вас теряется.
Лучше сделать отдельную таблицу "продукты", в которой хранить только
атрибуты продукции, и 2 связующие таблицы "продукты-города" и "продукты-рейсы"(в принципе можно обойтись одной, но я бы сделал две) с одинаковой стуктурой (id города или рейса, id товара, количество). При назначении
товара в рейс - заносить в "продукты-рейсы" id товара, id рейса и количество,
одновременно вычитая (или удаляя) это количество из записи таблицы "продукты-города", соответствующие городу отбытия и данному товару.
по прибытии - наоборот, если запись о таком товаре в городе прибытия есть,
то прибавлять количество, иначе - вставлять новую запись.
Тут еще вопрос - всегда ли у рейса только пункт отправления и пункт назначения, не может ли 1 рейс проехать по нескольким городам? Тогда надо
делать еще связующую таблицу "города-рейсы", в которую вносить id города,
id рейса, дату прибытия, дату отбытия.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / проектирование БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]