powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на удаление
25 сообщений из 56, страница 2 из 3
Запрос на удаление
    #39891946
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не нужен "ЧС"вообще
При оформлении заказа доводится до клиента что в случае не получения заказа в течении какого-то установленного срока (или по объективным причинам клиент просит продлить этот срок) он аннулируется.А в таблице заказы иметь логическое поле [заказВыдан]. Запрос на выборку и сформирует этот "ЧС" по требованию или при оформлении нового заказа по конкретному клиенту. ....Фсе
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892273
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBpr0ger
Так что мне делать? Просто мне в БД нужно реализовать формирование обратного отправления в случае отказа от посылки или истечения срока хранения.

Это делается добавлением поля "Статус посылки", которое содержит примерно такой перечень: Создана; Передана на склад; Выдана курьеру; Выдана клиенту; Возвращена на склад; Срок хранение истёк; Отправлена обратно; Возвращена отправителю. Мой вариант статусов может быть где-то избыточен или недостаточен, так как нужно знать каковы реальные процессы в компании, но суть уловить можно.
Программа каждый день проверяет все посылки со статусом "на складе" и датой поступления больше, чем разрешённое количество дней хранения, и меняет статус таких посылок на "Срок хранения истёк". Оператор смотрит в базу и видит, что есть посылки, которые нужно отправлять обратно и звонит складскому рабочему, чтобы тот просроченные посылки переложил на полку "просрочка" или начал загружать в машину (тут работают уже ваши бизнес-процессы). Как только кладовщик эти посылки оприходовал, то оператор меняет статус таких посылок на "Отправлена обратно". После того, как посылка возвращена, то у неё меняется статус на "Возвращена отправителю".
Всё движение посылки хранится в таблице логирования "движение посылки", сделанной аналогично таблице логирования для клиентов: код посылки, дата и время изменения, старый статус, новый статус. Для уникального ключа можно использовать отдельное поле "код", что, на мой взгляд, лучше, либо комбинацию: код посылки+дата и время изменения. Вместо значения статуса, можно использовать его код, что лучше для БД. Можно отказаться от поля "старый статус" и хранить только новый, тут всё будет зависеть от бизнес-логики программы.

UPD: в таблицы логирования можно добавить текстовое поле "Причина", в которое оператор будет записывать причину изменения статуса, но это, опять же, зависит от бизнес-процессов предприятия.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892390
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Хорошо, спасибо. Вы все прям полностью учитываете, как и все здесь. Но мне нужно сделать курсовую работу за несколько дней и у меня это врядли выйдет. Да и мы создаем подсистему. Нам не нужно учитывать прям все факторы из жизни. Будет достаточно того, что БД выполняет основные функции
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892393
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-то может подсказать, как сделать запрос на выборку посылок, связанных с клиентом. У меня получается лишь создать отдельные 2 запроса на выборку посылок: где клиент находится в роли отправителя и где клиент находится в роли получателя. А можно ли создать как-то 1 запрос, который бы учитывал оба эти условия и выводил все посылки, связанные с клиентом. Я знаю, как сделать это с помощью таблицы: те же 2 запроса на выборку меняем на добавление в таблицу и выходит, что все данные вместе, как мне и надо. Но я хотел бы сделать это именно с помощью запроса.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892436
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBpr0ger,

Как-то так:
Код: sql
1.
SELECT * FROM Отправления WHERE Отправитель = Код_клиента OR Получатель = Код_Клиента 


Код_клиента надо заменить на реальный код клиента. Чтобы передать код клиента в строку, существует несколько вариантов и всё зависит от того, как и где эта строка будет использоваться. Можно через конкетанцию текстовых строк и вызова через docmd.runsql, либо через Recordset, либо через вызов запроса.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892453
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Ля, он работает. Спасибо огромное!!! Я сам делал подобное: писал, что отправитель = код клиента или получатель = код клиента, но оно какого-то фига не работало. Правда, я делал все через конструктор, а в код эСКьюэЛ не лез. Наверное, там все выглядело не так, как я хотел и как надо было.
Я только что подставил код одного клиента, чтобы все проверить, потому что на самом деле мне нужно брать код с открытой формы "Клиенты". Оно заработало и с определенным кодом, и с подстановкой с формы.
Я посмотрел в конструкторе как он выглядит и оказалось, что он выглядит так, как я и делал почти в самом начале (просто я уже много способов перепробовал), а именно подстановка кода в поле "Отправитель" в "Условие отбора", а в "Получатель" — в "или". У меня так почему-то ничего не работало.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892458
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0ger
...как мне реализовать черный список клиентов в базе данных службы доставки....
Стесняюсь спросить:а зачем службе доставки клиенты? Служба доставки работает с посылками (то бишь с коробками,которые нужно доставить по такому-то адресу и вручить тому-то или положить в постомат или продержать какой- то срок на пункте выдачи,при неполучении посылки в установленный срок отправить её поставщику),а не с клиентами. Работа с клиентами прерогатива поставщика....
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892460
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Ты говоришь, что все посылки должны находится в одной таблице, но почему. Пусть в одной таблице будут все активные отправления (первичные и обратные), а в другой — все завершенные. Разве так не лучше? И выдавать будет легче, так как в форме не будут храниться забранные посылки.
И тема с логированием посылки сложно как-то для меня выглядит. Это выходит, что каждая посылка будет иметь в этой таблице как минимум по 4 записи (в дороге, отправляется, доставлено, получено). Это как-то неудобно просматривается.
И хотел спросить, нужно ли хранить в БД (или знать) привязку обратной посылки к первичной. Типо той, которая стала обратной. Какое это было изначальное отправление.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892463
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Я пишу курсовую работу. Туда можно и клиентов засунусть в базу данных службы доставки. Да и я не знал, что БД не хранит инфу про клиентов. Может, в какой-то БД службы доставки и хранится такая информация.
У нас ребята и в магазины засовуют клиентов. Разве в магазины нужно зосовывать клиентов?
Или мы по курсу предмета "Базы данных" создаем таблицу "Аптека", где тоже есть информация о клиентах (отдельная таблица для них создана). Разве там они нужны? Аптека — это же магазин лекарств.
Разве в магазинах нужны клиенты? Может в особых и да, но не в обычных, как по мне. Ведь магазин это что? Это работа с товарами.
Или может я не прав. Но я считаю так.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892470
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что мне следует добавить в поле "Отправитель" в обратной посылке? Я думал добавить туда что-то из этого: "Отправитель отсутствует", "Обратное отправление", "Служба доставки".
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892479
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBpr0ger
Stanislav P,

Ты говоришь, что все посылки должны находится в одной таблице, но почему. Пусть в одной таблице будут все активные отправления (первичные и обратные), а в другой — все завершенные. Разве так не лучше? И выдавать будет легче, так как в форме не будут храниться забранные посылки


Во-первых и в-главных: Твой вариант неверен с точки зрения построения архитектуры. Нужно учиться сразу делать правильно.
Во-вторых: Копирование данных из таблицы в таблицу это лишние действия, которые отнимают процессорное время, загружают диск не нужными операциями.
В-третьих: это лишний код и время потраченное на его написание и увеличение шанса допустить ошибку при переносе данных (не всё перенёс, не туда, не так).

Для того, чтобы посылки, которые отдали получателю или вернули отправителю не светились в форме, в которой у тебя должны быть только активные, так сказать посылки, нужно в свойствах формы использовать фильтрацию по полю "статус посылки" не равному "Возвращено отправителю" или "выдано получателю", примерно так:
Код: plsql
1.
SELECT * FROM Отправления WHERE СтатусПосылки <> "Возвращено" OR СтатусПосылки <> "Выдано"
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892484
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBpr0ger
Что мне следует добавить в поле "Отправитель" в обратной посылке? Я думал добавить туда что-то из этого: "Отправитель отсутствует", "Обратное отправление", "Служба доставки".

Это ты у кого и про что спрашиваешь?
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892486
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

У всех. И у тебя тоже.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892488
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Спасибо. Это в источник данных прописывать, я так понял.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892492
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Если мне хранить все отправления в одной таблице, то как мне организовать обратные отправления? Мне обновлять в текущем отправление поле "Статус доставки" на "В обратной дороге" или "Отправляется отправителю" (при этом отправлений фактически 2, потому что дорога сюда+дорога обратно, а отправление будет 1). При таком способе я не буду ничего менять в других полях (отправителя с получателем местами и города местами, ваще ничего).
Или лучше создавать новое отправление с новой накладной, где все эти поля будут меняться?
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892508
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBpr0ger
Stanislav P,

Если мне хранить все отправления в одной таблице, то как мне организовать обратные отправления? Мне обновлять в текущем отправление поле "Статус доставки" на "В обратной дороге" или "Отправляется отправителю" (при этом отправлений фактически 2, потому что дорога сюда+дорога обратно, а отправление будет 1). При таком способе я не буду ничего менять в других полях (отправителя с получателем местами и города местами, ваще ничего).
Или лучше создавать новое отправление с новой накладной, где все эти поля будут меняться?


Посылка у тебя всегда одна, меняется только её статус на "возврат отправителю", менять отправителя и получателя нельзя, так как это противоречит логике. В базе, проще говоря, создаётся документ "накладная на возврат" и этот документ будет фигурировать при возврате посылки отправителю.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892511
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Посылка 1, но отправлений то 2. У меня же отправление, а не посылка в базе хранится. Хотя, может я неправильно понимаю. Ну мне нравится твой вариант больше, так как в реале меньше мороки. Но если логически подумать, то отправлений 2. Или в настоящих БД делают также, то есть зависит берут за основную единицу саму посылку, а не отправление.
Ну тогда в случае обратного отправления мне стоит просто удвоить заявленную стоимость доставки, которую оплатит первоначальный отправитель?
В накладной на возврат мне стоит поменять эти поля местами (отправитель с получателем, их города соответственно)?
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892518
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне же нужно при обратной посылке менять даты отправки и прибытия?
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892586
Stanislav P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBpr0ger
Мне же нужно при обратной посылке менять даты отправки и прибытия?

Не надо. Можно сделать в таблице "Отправления" три поля с датами: Приёма, выдачи и возврата, но правильней будет, дату перенести в таблицу логов (движения посылки), то есть, поле с датой всегда будет одно. Это слегка усложнит запрос, когда надо будет вывести все посылки с определённой датой возврата, так как нужно будет использовать две таблицы, но зато в таблице "Отправления" не будет пустых значений в поле "дата выдачи" или в "дате возврата".
Можно не вводить поле "дата возврата", а использовать "дата выдачи" как дату возврата и это логично, так как предприятие посылку выдало, но только отправителю и статус "возвращена" это будет подтверждать.
Фактически, поставленную задачу можно решить с помощью двух таблиц: клиенты и отправления. Можно не вести таблицу логов, а просто менять статус посылки на нужный. То же самое и с чёрным списком клиентов - просто менять статус клиента в таблице клиенты. Логи нужны только тогда, когда нужно вести учёт движения посылок во временном разрезе.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892587
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Про посылку понял. Я как раз используют 3-ье поле "Дата получения" в качестве даты получения как для отправителя, так и для получателя. Но я думаю, что раз уж я использую это поле в обеих случаях, то лучше менять даты получения и прибытия на новые (для обратной посылки), так как мне нужно знать, когда придет данная посылка, чтобы сработал запрос на обновление статуса посылки с "Отправляется отправителю" на "В отделении отправителя".
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892589
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В создании БД первым и одним из главных этапов является четкая постановка задачи(это процентов на 60-80 определяет успех).Лично я ничего не понял:
-что за организация (транспортная компания,филиал интернет магазина)
-каковы функции этой организации
-занимается ли эта организация комплектованием заказа (или работа осуществляется только с закрытыми посылками(коробками и не важно что внутри)
-и т.д и т.п:короче весь процесс работы-что и как происходит.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892591
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Организация — служба доставки на территории Украины.
Функции организации: доставка посылок по городам Украины.
Эта организация занимается перевозкой закрытых посылок (а может и нет, не знаю).
Я не жоский БДшник. Я студент, только учусь, поэтому у меня так много ошибок. Мое задание — сделать подсистему БД или что-то типо этого. Нужно, чтобы подсистема была похожа на то, что творится в реальности.
В моей БД должны быть реализованы такие функции (если я правильно понимаю, что это):
-занесение новых клиентов в БД;
-журнал учета ЧС (добавление в ЧС и вычеркивание с него) — этого, возможно, нету в настойщей БД, но у меня может и быть;
-регистрация новых посылок, их выдача, обратная отправка (в случае истечения срока хранения или в случае отказа от посылки);
-прием новых сотрудников и, возможно, увольнение старых;
-вывод разных информации на печать.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892606
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBpr0ger
sdku,
Организация — служба доставки на территории Украины.
Функции организации: доставка посылок по городам Украины.
В этом случае БД очень проста и работа ведется только по идентификатору посылки(кстати а откуда они берутся/возникают)
DBpr0ger
Эта организация занимается перевозкой закрытых посылок (а может и нет, не знаю).
Это уже абсолютно разные БД (типа "учет горюче-смазочных материалов" на базе горючего и в автотранспортном предприятии-абсолютно разные БД). Пока не будет конкретики в постановке задачи она не разрешима. Типа сделай то-не знаю что, иди туда-не знаю куда, стой там иди сюда)
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892638
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stanislav P,

Я тут подумал. Мне хотелось бы попробовать реализовать логирование. Посмотреть хотя бы как оно работает. Можешь подсказать, мне в таком случае нужно сделать следующее:
-с таблицы "Отправления" убрать поля "Дата отправки", "Дата прибытия" и "Дата получения";
создать таблицу "Логирование" с полями: "Код логирования", "Номер накладной", "Статус логирования", "Дата"
-"Номер накладной" — мастер подстановок с таблицы "Отправления";
-"Статус логирования" —мастер подстановок значений типо "В дороге", "В отделение" и т.д. (лучше делать через отдельную таблицу с кодом, чтобы в таблице "Логирование" хранилось число);
-"Код логирования" я хотел бы попробовать составить, если получится, с символов текущей даты и текущего времени, потому что счетчик не очень нравится.
...
Рейтинг: 0 / 0
Запрос на удаление
    #39892639
DBpr0ger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Сложно. Я делаю так, как понимаю. Мою БД ведь никто не будет использовать в настоящей жизни, так что я думаю, что на сдачу курсового она пойдет.
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на удаление
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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