powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД для службы доставки
15 сообщений из 15, страница 1 из 1
БД для службы доставки
    #40067427
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Я учусь в колледже на 4-ом курсу и сейчас пишу диплом. Защита диплома будет через месяц. Мое задание — создать приложение для автоматизации работы службы доставки. Создавать БД я думаю либо в SQLite, либо в MySQL, а писать приложение в Qt.
Нужна помощь в проектировании БД. Я не знаю как на самом деле работает служба доставки, поэтому составляю БД по моим предположениям и некой информации, найденной в интернете. К тому же до защиты всего месяц и я в раздумиях какой способ выбрать: облегченный или осложненный, то есть какую БД спроектировать. Еще я не уверен, что у меня получится совладать с запросами в осложненном варианте БД.
Сейчас я опишу оба варианта. Точной постановки задачи нету, поэтому могут быть логические несостыковки и прочее.
Вариант осложненной БД.
В БД хранится информация о:
- посылках: номер накладной, габариты, вес, вид посылки, способ доставки, способ оплаты, отправитель, получатель, адрес отправителя, адрес получателя, сотрудник (принявший посылку), сотрудник (выдавший посылку), стоимость;
- клиентах (клиентами могут быть частные лица либо организации): ФИО (либо название организации), номер телефона;
- сотрудниках (курьер и тот, кто выдает посылку в отделении): ФИО, должность, отделение (в котором работает);
- отделениях (номер, тип, адрес).
Посылка имеет какое-то содержимое, что может быть больше, чем 1 предмет.
К посылкам можно заказать дополнительные услуги.
Должно вестить логирование посылок(находится в дороге, ожидает в отделении, выдана курьеру и т.д.).
Решил хранить ФИО и адреса отдельными таблицами, а не полями, но не знаю, правильное ли это решение.
Может можно добавить еще что-то, например, хранение информации о перевозке посылок.
Вариант облегченной БД.
В службе доставки самое главное — это посылки (если я не ошибаюсь), поэтому БД хранится информация о посылках: примерно все те же поля, но добавляется номер отправителя и получателя (якобы для связи с ними, для отправки им сообщений о статусе посылки).
Информация о сотрудниках, клиентах, отделениях, адресах не хранится. Все значения будут вписываться непосредственно в таблицу посылок, а не подтягиваться из других таблиц.
Остается содержимое посылок, дополнительные услуги и логирование.
Возможно, облегченный вариант неправильный, потому что я не сильно долго размышлял над ним. Да и он мне не очень нравится, потому что как-то просто он выглядит (могут сказать, что как-то слабо для 4-го курса).
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067428
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Схема данных осложненного варианта
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067429
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Схема данных облегченного варианта
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067477
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0ger, IMHO, на сложной схеме справа вверху лишняя связь с табл.Люди.
Зачем задавать дату рождения у клиента?
Конечно, и сотрудники могут отправлять посылки, но клиенты и сотрудники - разные сущности.
Это после беглого просмотра)))
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067531
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0ger
Точной постановки задачи нету, поэтому могут быть логические несостыковки и прочее.

Она есть, просто вы её не заметили...
DBpr0ger
Мое задание — создать приложение для автоматизации работы службы доставки

И по этой причине ломанулись не в ту сторону - оставьте в покое почту России... боюсь для вас это не посильная задача...
Раз такая постановка - выберите для себя решаемую задачу, но доведите её до конца...
Например:
- доставка пиццы (Пицца + Клиент + Заказ + Курьер... +/-)
- посложнее имитатор службы СДЭК (добавляются пункты приема и промежуточные пункты доставки)
Не стоит сразу вешать себе на шею камень и прыгать в омут, тем более от вас этого никто не требует...
DBpr0ger
Создавать БД я думаю либо в SQLite, либо в MySQL, а писать приложение в Qt

За месяц для вас эта миссия не выполнима...
Рекомендации:
- для обсуждения схем, мне кажется сюда их целесообразнее выкладывать с русскими названиями полей, тогда меньше нужно описаний... Выложил понятную схему, спросил типа - Это схема службы доставки, что не так? и всё... Переделать потом на латиницу рабочий вариант не вопрос...
- Что касается дипломов и курсовых - то лучше представлять законченное рабочее решение, а не приносить
на защиту недоделанного франкенштейна...
Мне кажется больше бонусов будет если вы представите рабочее приложение на QT...
Я Вас уверяю, если вы даже остановитесь на доставке пиццы, то даже это реализовать реально для вас будет не так просто:
- Это клиентская база (накопления, скидки, бонусы, акции), ходя для уровня колледжа достаточно ФИО, Адрес и телефон
- Виды оплаты (наличными, безналичными)
- Статус заказа
- В заказе может быть несколько позиций...
- элементы логистики (в какую сторону отправить курьера с несколькими заказами)
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067604
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторDBpr0ger, IMHO, на сложной схеме справа вверху лишняя связь с табл.Люди.
ИВП, я, как говорил ранее, не уверен, что это правильное решение.
авторЗачем задавать дату рождения у клиента?
Для большей идентификации. А может ты и прав и она мне не нужна, потому что на данный момент я решил, что для БД уникальный идентификатор клиента — это ключ, а для человека (например, сотрудника) — номер телефона. И поправочка: дата рождения не клиента, а человека. Клиентами могут быть люди и организации, у людей есть дата рождения, у организаций — нет.
авторКонечно, и сотрудники могут отправлять посылки, но клиенты и сотрудники - разные сущности.
Согласен, что разные, но человек-то может быть одним и тем же. Сейчас он выдает посылки, чуть позже сам оформляет себе заказ. Или я неправильно рассуждаю?
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067616
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0gerна данный момент я решил, что для БД уникальный идентификатор клиента — это ключ

Для доставки идентификатор клиента не нужен. Достаточно средства идентификации при
передаче, а это обычно адрес для малоценки типа пиццы или код заказа/ФИО для всего остального.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067620
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag, привет. Ты забыл меня?
Запрос на удаление
авторИ по этой причине ломанулись не в ту сторону - оставьте в покое почту России... боюсь для вас это не посильная задача...
Что задача не посильная, я согласен. Я с Украины. В основном пользуюсь услугами Новой Почты (https://novaposhta.ua/ru), да и то, только, чтобы заказать что-то с интернет-магазина, поэтому знаю лишь как получать посылку, но не как отправлять ее. Поэтому решил брать пример с нее (Новой Почты). Многое, если не все, взято оттуда. Но я не брал все, а лишь то, что, как подумал, смогу реализовать.
авторРаз такая постановка - выберите для себя решаемую задачу, но доведите её до конца...
Ну постановку я примерную написал. В идеале я хочу, чтобы было так:все то, что было в осложненном варианте + перевозка посылок. То есть добавить в БД либо:
- должность водителя, который будет перевозить кучу посылок с одного города в другой, потом с этого другого в какой-то третий;
- перевозчиков.
авторЗа месяц для вас эта миссия не выполнима...
Почему? Вы имеет ввиду приложение, БД или все вместе. Просто в SQLite я уже создал эту БД. Скорее всего неправильно, потому что мало работал с базами данных и мало что учил.
автор- для обсуждения схем, мне кажется сюда их целесообразнее выкладывать с русскими названиями полей, тогда меньше нужно описаний... Выложил понятную схему, спросил типа - Это схема службы доставки, что не так? и всё... Переделать потом на латиницу рабочий вариант не вопрос...
Понял.
автор- Что касается дипломов и курсовых - то лучше представлять законченное рабочее решение, а не приносить на защиту недоделанного франкенштейна...
Ну я так и думал. Кому же нужен нерабочий монстр.
авторМне кажется больше бонусов будет если вы представите рабочее приложение на QT...
Не сильно понял. Я же все равно должен его предоставить в любой случае. У меня как бы задача: подключить БД к какой-то среде разработки и создать там приложение. Я поначалу говорил, что буду чисто в MS Access делать, но мне сказали, что это слабо и лучше привязать БД к какой-то среде разработки, а не создавать формы, отчеты и т.п. в MS Access.
авторЯ Вас уверяю, если вы даже остановитесь на доставке пиццы, то даже это реализовать реально для вас будет не так просто:
Я вряд ли могу уже поменять тему да и переключаться на другую область не охота. Остался месяц до защиты, я сказал, что буду делать службу доставки.
автор- элементы логистики (в какую сторону отправить курьера с несколькими заказами)
Вот насчет этого я, кстати, не задумывался. У меня есть просто посылки, они просто вешаются на курьра, а маршрут ему не простраивается. У меня-то и название улиц нанастоящие, поэтому нет их расположения на карте.
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067626
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0gerЯ поначалу говорил, что буду чисто в MS Access делать, но мне сказали, что это слабо и
лучше привязать БД к какой-то среде разработки, а не создавать формы, отчеты и т.п. в MS
Access.

Странные люди. MS Access это и есть среда разработки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067630
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0ger
Я вряд ли могу уже поменять тему да и переключаться на другую область не охота. Остался месяц до защиты, я сказал, что буду делать службу доставки .
Доставка пиццы (которую ВАМ предложили) - это разве не служба доставки?
И как-то студенту колледжа (хоть и четвертого курса) не очень пристало тыкать взрослым людям, которые в несколько раз старше.
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067643
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел бы спросить по поводу БД в общем.
1. Стоит ли хранить в таблице посылок информацию о сотруднике, принявшем посылку, и сотруднике, выдавшем ее. Единственное, для чего это стоит хранить, как по мне — для отчетности.
2. Кассир (тот, кто выдает посылку в отделении) должен быть привязан к своему отделению, но я не знаю, стоит ли привязывать курьера к определенному отделению. Мне кажется, что лучше привязать его к городу, чтобы он мог брать посылки с одного отделения, раздавать их, потом брать с другого и т.д.
3. Каждое отделение — это склад. Если посылка связана с отделениями (отправляется с отделения, доставляется на отделение), то ее оформляет и выдает кассир, если же посылка связана с адресами — курьер. Если курьер привязан к отделению, то посылка как бы направяется курьером в его отделение и оттуда уже отправляется в пункт назначения. Но если курьер не привязан к отделению, то у меня есть выбор: отправлять посылку в какое-то отделение города, а затем оттуда уже в пункт назначения.
Скорее всего, не очень понятно, зачем это нужно. Просто это связано со следующей проблемой.
4. Добавить перевозчиков либо должность водителя.
У водителя есть пункт отправки (город, в котором он находится в данный момент) и пункт назначения (город, в который он повезет посылки). Он объезжает все отделения данного города, собирает посылки и везет их прямиком без остановок в пункт назначения. В пункте назначения он также объезжает все отделения, чтобы выгрузить посылки. Затем все повторяется. Для этого все посылки должны находиться в отделениях. Если посылку принимает кассир, то она автоматом будет в отделении, но если этим занимается курьер, то он ведь должен сначала отвезти ее на склад какого-то отделения. Если он будет привязан к отделению, то понятно куда он будет ее везти, если нет — то нужно думать.
Я думаю добавить перевозчиков вместо водителей, потому что водитель таким образом будет постоянно в разъездах и не будет жить дома, что не выглядит реалистично. Либо ему нужно просто сделать больше выходных.
А если добавить перевозчиков, то меня не беспокоит кто у них там вечно в разъездах. Схема работы такая:
- водитель с грузовиком, который со всех отделений свозит посылки перевозчику; перевозчик перевозит их в другой город; там снова водитель приезжает к перевозчику и забирает все посылки; таким образом, водитель будет всегда в своем городе;
- перевозчик сам подъезжает к отделениям и ему грузят посылки; тогда должность водителя вообще не нужна.
5. В посылках, вроде как, хранят еще объявленную стоимость содержимого: я могу просто добавить поле "Цена" в таблицу "Содержимое посылки".
6. В НП (Новой Почте) посылку оплачивает либо отправитель, либо получатель. Так и с доп. услугами: их оплачивает кто-то из них. На данный момент у меня в БД вообще не отражено, кто платит за посылку. Я думаю добавить поле "Кто платит" в таблицу "Посылки" и поле "Кто платит" в таблицу "Доп. услуги".
7. Среди доп. услуг есть такие: упаковка, переадресация, возврат.
Упаковка — это заказ упаковки, если отправитель не запаковал посылку сам. В НП (https://novaposhta.ua/ru/upakovka) она может быть заказана лишь в том случае, если посылка отправляется в отделения.
Переадресация — изменение адреса доставки. В НП (https://novaposhta.ua/ru/pereadresatsiya). Поскольку это доп. услуга, то я должен менять адрес доставки у посылки, а не создавать новую. И мне, скорее всего, нужно создавать доп. таблицу для логов данной услуги: дата, прошлый адрес, новый адрес. Таблица нужна для правильного вычисления дополнительной стоимости отправления.
Возврат — спустя 7 дней хранения к посылке каждый день начисляется доп. стоимость. Спустя 30 дней посылка аннулируется и принадлежит службе доставки. Чтобы этого не произошло, следует оформить эту доп. услугу.
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067646
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
авторДля доставки идентификатор клиента не нужен. Достаточно средства идентификации при
передаче, а это обычно адрес для малоценки типа пиццы или код заказа/ФИО для всего остального.
Возможно, я неправильно понял. Типо если курьер отдает пиццу, то он придет по адресу в накладной и это будет значить, что клиент точно тот, кто нужен? Если да, то это, как мне кажется, облегченный вариант БД.
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067647
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСтранные люди. MS Access это и есть среда разработки.
Ну я так понимаю, что MS Access многое делает за нас, поэтому они считают приложение, сделанное в нем, более легким.
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067653
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторДоставка пиццы (которую ВАМ предложили) - это разве не служба доставки?
Мне нужно, чтобы можно было доставлять любые товары (не только пиццу).
авторИ как-то студенту колледжа (хоть и четвертого курса) не очень пристало тыкать взрослым людям, которые в несколько раз старше.
Не подумал вообще о возрасте. Знал бы, что Вы намного старше, то, скорее всего, написал бы "Вы".
...
Рейтинг: 0 / 0
БД для службы доставки
    #40067666
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0ger,
при чем здесь я? Вы посмотрите год регистрации некоторых уважаемых мемберов: 2006.
Вы еще в детсаду были или в школу уже пошли?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД для службы доставки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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