|
БД для службы доставки
|
|||
---|---|---|---|
#18+
Всем привет. Я учусь в колледже на 4-ом курсу и сейчас пишу диплом. Защита диплома будет через месяц. Мое задание — создать приложение для автоматизации работы службы доставки. Создавать БД я думаю либо в SQLite, либо в MySQL, а писать приложение в Qt. Нужна помощь в проектировании БД. Я не знаю как на самом деле работает служба доставки, поэтому составляю БД по моим предположениям и некой информации, найденной в интернете. К тому же до защиты всего месяц и я в раздумиях какой способ выбрать: облегченный или осложненный, то есть какую БД спроектировать. Еще я не уверен, что у меня получится совладать с запросами в осложненном варианте БД. Сейчас я опишу оба варианта. Точной постановки задачи нету, поэтому могут быть логические несостыковки и прочее. Вариант осложненной БД. В БД хранится информация о: - посылках: номер накладной, габариты, вес, вид посылки, способ доставки, способ оплаты, отправитель, получатель, адрес отправителя, адрес получателя, сотрудник (принявший посылку), сотрудник (выдавший посылку), стоимость; - клиентах (клиентами могут быть частные лица либо организации): ФИО (либо название организации), номер телефона; - сотрудниках (курьер и тот, кто выдает посылку в отделении): ФИО, должность, отделение (в котором работает); - отделениях (номер, тип, адрес). Посылка имеет какое-то содержимое, что может быть больше, чем 1 предмет. К посылкам можно заказать дополнительные услуги. Должно вестить логирование посылок(находится в дороге, ожидает в отделении, выдана курьеру и т.д.). Решил хранить ФИО и адреса отдельными таблицами, а не полями, но не знаю, правильное ли это решение. Может можно добавить еще что-то, например, хранение информации о перевозке посылок. Вариант облегченной БД. В службе доставки самое главное — это посылки (если я не ошибаюсь), поэтому БД хранится информация о посылках: примерно все те же поля, но добавляется номер отправителя и получателя (якобы для связи с ними, для отправки им сообщений о статусе посылки). Информация о сотрудниках, клиентах, отделениях, адресах не хранится. Все значения будут вписываться непосредственно в таблицу посылок, а не подтягиваться из других таблиц. Остается содержимое посылок, дополнительные услуги и логирование. Возможно, облегченный вариант неправильный, потому что я не сильно долго размышлял над ним. Да и он мне не очень нравится, потому что как-то просто он выглядит (могут сказать, что как-то слабо для 4-го курса). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 01:03 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
Схема данных осложненного варианта ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 01:04 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
Схема данных облегченного варианта ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 01:05 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
DBpr0ger, IMHO, на сложной схеме справа вверху лишняя связь с табл.Люди. Зачем задавать дату рождения у клиента? Конечно, и сотрудники могут отправлять посылки, но клиенты и сотрудники - разные сущности. Это после беглого просмотра))) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 10:00 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
DBpr0ger Точной постановки задачи нету, поэтому могут быть логические несостыковки и прочее. Она есть, просто вы её не заметили... DBpr0ger Мое задание — создать приложение для автоматизации работы службы доставки И по этой причине ломанулись не в ту сторону - оставьте в покое почту России... боюсь для вас это не посильная задача... Раз такая постановка - выберите для себя решаемую задачу, но доведите её до конца... Например: - доставка пиццы (Пицца + Клиент + Заказ + Курьер... +/-) - посложнее имитатор службы СДЭК (добавляются пункты приема и промежуточные пункты доставки) Не стоит сразу вешать себе на шею камень и прыгать в омут, тем более от вас этого никто не требует... DBpr0ger Создавать БД я думаю либо в SQLite, либо в MySQL, а писать приложение в Qt За месяц для вас эта миссия не выполнима... Рекомендации: - для обсуждения схем, мне кажется сюда их целесообразнее выкладывать с русскими названиями полей, тогда меньше нужно описаний... Выложил понятную схему, спросил типа - Это схема службы доставки, что не так? и всё... Переделать потом на латиницу рабочий вариант не вопрос... - Что касается дипломов и курсовых - то лучше представлять законченное рабочее решение, а не приносить на защиту недоделанного франкенштейна... Мне кажется больше бонусов будет если вы представите рабочее приложение на QT... Я Вас уверяю, если вы даже остановитесь на доставке пиццы, то даже это реализовать реально для вас будет не так просто: - Это клиентская база (накопления, скидки, бонусы, акции), ходя для уровня колледжа достаточно ФИО, Адрес и телефон - Виды оплаты (наличными, безналичными) - Статус заказа - В заказе может быть несколько позиций... - элементы логистики (в какую сторону отправить курьера с несколькими заказами) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 11:27 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
авторDBpr0ger, IMHO, на сложной схеме справа вверху лишняя связь с табл.Люди. ИВП, я, как говорил ранее, не уверен, что это правильное решение. авторЗачем задавать дату рождения у клиента? Для большей идентификации. А может ты и прав и она мне не нужна, потому что на данный момент я решил, что для БД уникальный идентификатор клиента — это ключ, а для человека (например, сотрудника) — номер телефона. И поправочка: дата рождения не клиента, а человека. Клиентами могут быть люди и организации, у людей есть дата рождения, у организаций — нет. авторКонечно, и сотрудники могут отправлять посылки, но клиенты и сотрудники - разные сущности. Согласен, что разные, но человек-то может быть одним и тем же. Сейчас он выдает посылки, чуть позже сам оформляет себе заказ. Или я неправильно рассуждаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 14:12 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
DBpr0gerна данный момент я решил, что для БД уникальный идентификатор клиента — это ключ Для доставки идентификатор клиента не нужен. Достаточно средства идентификации при передаче, а это обычно адрес для малоценки типа пиццы или код заказа/ФИО для всего остального. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 14:30 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
vmag, привет. Ты забыл меня? Запрос на удаление авторИ по этой причине ломанулись не в ту сторону - оставьте в покое почту России... боюсь для вас это не посильная задача... Что задача не посильная, я согласен. Я с Украины. В основном пользуюсь услугами Новой Почты (https://novaposhta.ua/ru), да и то, только, чтобы заказать что-то с интернет-магазина, поэтому знаю лишь как получать посылку, но не как отправлять ее. Поэтому решил брать пример с нее (Новой Почты). Многое, если не все, взято оттуда. Но я не брал все, а лишь то, что, как подумал, смогу реализовать. авторРаз такая постановка - выберите для себя решаемую задачу, но доведите её до конца... Ну постановку я примерную написал. В идеале я хочу, чтобы было так:все то, что было в осложненном варианте + перевозка посылок. То есть добавить в БД либо: - должность водителя, который будет перевозить кучу посылок с одного города в другой, потом с этого другого в какой-то третий; - перевозчиков. авторЗа месяц для вас эта миссия не выполнима... Почему? Вы имеет ввиду приложение, БД или все вместе. Просто в SQLite я уже создал эту БД. Скорее всего неправильно, потому что мало работал с базами данных и мало что учил. автор- для обсуждения схем, мне кажется сюда их целесообразнее выкладывать с русскими названиями полей, тогда меньше нужно описаний... Выложил понятную схему, спросил типа - Это схема службы доставки, что не так? и всё... Переделать потом на латиницу рабочий вариант не вопрос... Понял. автор- Что касается дипломов и курсовых - то лучше представлять законченное рабочее решение, а не приносить на защиту недоделанного франкенштейна... Ну я так и думал. Кому же нужен нерабочий монстр. авторМне кажется больше бонусов будет если вы представите рабочее приложение на QT... Не сильно понял. Я же все равно должен его предоставить в любой случае. У меня как бы задача: подключить БД к какой-то среде разработки и создать там приложение. Я поначалу говорил, что буду чисто в MS Access делать, но мне сказали, что это слабо и лучше привязать БД к какой-то среде разработки, а не создавать формы, отчеты и т.п. в MS Access. авторЯ Вас уверяю, если вы даже остановитесь на доставке пиццы, то даже это реализовать реально для вас будет не так просто: Я вряд ли могу уже поменять тему да и переключаться на другую область не охота. Остался месяц до защиты, я сказал, что буду делать службу доставки. автор- элементы логистики (в какую сторону отправить курьера с несколькими заказами) Вот насчет этого я, кстати, не задумывался. У меня есть просто посылки, они просто вешаются на курьра, а маршрут ему не простраивается. У меня-то и название улиц нанастоящие, поэтому нет их расположения на карте. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 14:36 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
DBpr0gerЯ поначалу говорил, что буду чисто в MS Access делать, но мне сказали, что это слабо и лучше привязать БД к какой-то среде разработки, а не создавать формы, отчеты и т.п. в MS Access. Странные люди. MS Access это и есть среда разработки. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 14:50 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
DBpr0ger Я вряд ли могу уже поменять тему да и переключаться на другую область не охота. Остался месяц до защиты, я сказал, что буду делать службу доставки . И как-то студенту колледжа (хоть и четвертого курса) не очень пристало тыкать взрослым людям, которые в несколько раз старше. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 15:09 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
Хотел бы спросить по поводу БД в общем. 1. Стоит ли хранить в таблице посылок информацию о сотруднике, принявшем посылку, и сотруднике, выдавшем ее. Единственное, для чего это стоит хранить, как по мне — для отчетности. 2. Кассир (тот, кто выдает посылку в отделении) должен быть привязан к своему отделению, но я не знаю, стоит ли привязывать курьера к определенному отделению. Мне кажется, что лучше привязать его к городу, чтобы он мог брать посылки с одного отделения, раздавать их, потом брать с другого и т.д. 3. Каждое отделение — это склад. Если посылка связана с отделениями (отправляется с отделения, доставляется на отделение), то ее оформляет и выдает кассир, если же посылка связана с адресами — курьер. Если курьер привязан к отделению, то посылка как бы направяется курьером в его отделение и оттуда уже отправляется в пункт назначения. Но если курьер не привязан к отделению, то у меня есть выбор: отправлять посылку в какое-то отделение города, а затем оттуда уже в пункт назначения. Скорее всего, не очень понятно, зачем это нужно. Просто это связано со следующей проблемой. 4. Добавить перевозчиков либо должность водителя. У водителя есть пункт отправки (город, в котором он находится в данный момент) и пункт назначения (город, в который он повезет посылки). Он объезжает все отделения данного города, собирает посылки и везет их прямиком без остановок в пункт назначения. В пункте назначения он также объезжает все отделения, чтобы выгрузить посылки. Затем все повторяется. Для этого все посылки должны находиться в отделениях. Если посылку принимает кассир, то она автоматом будет в отделении, но если этим занимается курьер, то он ведь должен сначала отвезти ее на склад какого-то отделения. Если он будет привязан к отделению, то понятно куда он будет ее везти, если нет — то нужно думать. Я думаю добавить перевозчиков вместо водителей, потому что водитель таким образом будет постоянно в разъездах и не будет жить дома, что не выглядит реалистично. Либо ему нужно просто сделать больше выходных. А если добавить перевозчиков, то меня не беспокоит кто у них там вечно в разъездах. Схема работы такая: - водитель с грузовиком, который со всех отделений свозит посылки перевозчику; перевозчик перевозит их в другой город; там снова водитель приезжает к перевозчику и забирает все посылки; таким образом, водитель будет всегда в своем городе; - перевозчик сам подъезжает к отделениям и ему грузят посылки; тогда должность водителя вообще не нужна. 5. В посылках, вроде как, хранят еще объявленную стоимость содержимого: я могу просто добавить поле "Цена" в таблицу "Содержимое посылки". 6. В НП (Новой Почте) посылку оплачивает либо отправитель, либо получатель. Так и с доп. услугами: их оплачивает кто-то из них. На данный момент у меня в БД вообще не отражено, кто платит за посылку. Я думаю добавить поле "Кто платит" в таблицу "Посылки" и поле "Кто платит" в таблицу "Доп. услуги". 7. Среди доп. услуг есть такие: упаковка, переадресация, возврат. Упаковка — это заказ упаковки, если отправитель не запаковал посылку сам. В НП (https://novaposhta.ua/ru/upakovka) она может быть заказана лишь в том случае, если посылка отправляется в отделения. Переадресация — изменение адреса доставки. В НП (https://novaposhta.ua/ru/pereadresatsiya). Поскольку это доп. услуга, то я должен менять адрес доставки у посылки, а не создавать новую. И мне, скорее всего, нужно создавать доп. таблицу для логов данной услуги: дата, прошлый адрес, новый адрес. Таблица нужна для правильного вычисления дополнительной стоимости отправления. Возврат — спустя 7 дней хранения к посылке каждый день начисляется доп. стоимость. Спустя 30 дней посылка аннулируется и принадлежит службе доставки. Чтобы этого не произошло, следует оформить эту доп. услугу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 15:34 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, авторДля доставки идентификатор клиента не нужен. Достаточно средства идентификации при передаче, а это обычно адрес для малоценки типа пиццы или код заказа/ФИО для всего остального. Возможно, я неправильно понял. Типо если курьер отдает пиццу, то он придет по адресу в накладной и это будет значить, что клиент точно тот, кто нужен? Если да, то это, как мне кажется, облегченный вариант БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 15:38 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
авторСтранные люди. MS Access это и есть среда разработки. Ну я так понимаю, что MS Access многое делает за нас, поэтому они считают приложение, сделанное в нем, более легким. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 15:40 |
|
БД для службы доставки
|
|||
---|---|---|---|
#18+
авторДоставка пиццы (которую ВАМ предложили) - это разве не служба доставки? Мне нужно, чтобы можно было доставлять любые товары (не только пиццу). авторИ как-то студенту колледжа (хоть и четвертого курса) не очень пристало тыкать взрослым людям, которые в несколько раз старше. Не подумал вообще о возрасте. Знал бы, что Вы намного старше, то, скорее всего, написал бы "Вы". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2021, 15:46 |
|
|
start [/forum/topic.php?fid=32&msg=40067643&tid=1539801]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 239ms |
total: | 374ms |
0 / 0 |