|
Запрос на удаление
|
|||
---|---|---|---|
#18+
да не нужен "ЧС"вообще При оформлении заказа доводится до клиента что в случае не получения заказа в течении какого-то установленного срока (или по объективным причинам клиент просит продлить этот срок) он аннулируется.А в таблице заказы иметь логическое поле [заказВыдан]. Запрос на выборку и сформирует этот "ЧС" по требованию или при оформлении нового заказа по конкретному клиенту. ....Фсе ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 18:38 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger Так что мне делать? Просто мне в БД нужно реализовать формирование обратного отправления в случае отказа от посылки или истечения срока хранения. Это делается добавлением поля "Статус посылки", которое содержит примерно такой перечень: Создана; Передана на склад; Выдана курьеру; Выдана клиенту; Возвращена на склад; Срок хранение истёк; Отправлена обратно; Возвращена отправителю. Мой вариант статусов может быть где-то избыточен или недостаточен, так как нужно знать каковы реальные процессы в компании, но суть уловить можно. Программа каждый день проверяет все посылки со статусом "на складе" и датой поступления больше, чем разрешённое количество дней хранения, и меняет статус таких посылок на "Срок хранения истёк". Оператор смотрит в базу и видит, что есть посылки, которые нужно отправлять обратно и звонит складскому рабочему, чтобы тот просроченные посылки переложил на полку "просрочка" или начал загружать в машину (тут работают уже ваши бизнес-процессы). Как только кладовщик эти посылки оприходовал, то оператор меняет статус таких посылок на "Отправлена обратно". После того, как посылка возвращена, то у неё меняется статус на "Возвращена отправителю". Всё движение посылки хранится в таблице логирования "движение посылки", сделанной аналогично таблице логирования для клиентов: код посылки, дата и время изменения, старый статус, новый статус. Для уникального ключа можно использовать отдельное поле "код", что, на мой взгляд, лучше, либо комбинацию: код посылки+дата и время изменения. Вместо значения статуса, можно использовать его код, что лучше для БД. Можно отказаться от поля "старый статус" и хранить только новый, тут всё будет зависеть от бизнес-логики программы. UPD: в таблицы логирования можно добавить текстовое поле "Причина", в которое оператор будет записывать причину изменения статуса, но это, опять же, зависит от бизнес-процессов предприятия. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 12:28 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Хорошо, спасибо. Вы все прям полностью учитываете, как и все здесь. Но мне нужно сделать курсовую работу за несколько дней и у меня это врядли выйдет. Да и мы создаем подсистему. Нам не нужно учитывать прям все факторы из жизни. Будет достаточно того, что БД выполняет основные функции ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 15:00 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Кто-то может подсказать, как сделать запрос на выборку посылок, связанных с клиентом. У меня получается лишь создать отдельные 2 запроса на выборку посылок: где клиент находится в роли отправителя и где клиент находится в роли получателя. А можно ли создать как-то 1 запрос, который бы учитывал оба эти условия и выводил все посылки, связанные с клиентом. Я знаю, как сделать это с помощью таблицы: те же 2 запроса на выборку меняем на добавление в таблицу и выходит, что все данные вместе, как мне и надо. Но я хотел бы сделать это именно с помощью запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 15:03 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger, Как-то так: Код: sql 1.
Код_клиента надо заменить на реальный код клиента. Чтобы передать код клиента в строку, существует несколько вариантов и всё зависит от того, как и где эта строка будет использоваться. Можно через конкетанцию текстовых строк и вызова через docmd.runsql, либо через Recordset, либо через вызов запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 15:54 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Ля, он работает. Спасибо огромное!!! Я сам делал подобное: писал, что отправитель = код клиента или получатель = код клиента, но оно какого-то фига не работало. Правда, я делал все через конструктор, а в код эСКьюэЛ не лез. Наверное, там все выглядело не так, как я хотел и как надо было. Я только что подставил код одного клиента, чтобы все проверить, потому что на самом деле мне нужно брать код с открытой формы "Клиенты". Оно заработало и с определенным кодом, и с подстановкой с формы. Я посмотрел в конструкторе как он выглядит и оказалось, что он выглядит так, как я и делал почти в самом начале (просто я уже много способов перепробовал), а именно подстановка кода в поле "Отправитель" в "Условие отбора", а в "Получатель" — в "или". У меня так почему-то ничего не работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 16:17 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger ...как мне реализовать черный список клиентов в базе данных службы доставки.... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 16:23 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Ты говоришь, что все посылки должны находится в одной таблице, но почему. Пусть в одной таблице будут все активные отправления (первичные и обратные), а в другой — все завершенные. Разве так не лучше? И выдавать будет легче, так как в форме не будут храниться забранные посылки. И тема с логированием посылки сложно как-то для меня выглядит. Это выходит, что каждая посылка будет иметь в этой таблице как минимум по 4 записи (в дороге, отправляется, доставлено, получено). Это как-то неудобно просматривается. И хотел спросить, нужно ли хранить в БД (или знать) привязку обратной посылки к первичной. Типо той, которая стала обратной. Какое это было изначальное отправление. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 16:26 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
sdku, Я пишу курсовую работу. Туда можно и клиентов засунусть в базу данных службы доставки. Да и я не знал, что БД не хранит инфу про клиентов. Может, в какой-то БД службы доставки и хранится такая информация. У нас ребята и в магазины засовуют клиентов. Разве в магазины нужно зосовывать клиентов? Или мы по курсу предмета "Базы данных" создаем таблицу "Аптека", где тоже есть информация о клиентах (отдельная таблица для них создана). Разве там они нужны? Аптека — это же магазин лекарств. Разве в магазинах нужны клиенты? Может в особых и да, но не в обычных, как по мне. Ведь магазин это что? Это работа с товарами. Или может я не прав. Но я считаю так. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 16:28 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Что мне следует добавить в поле "Отправитель" в обратной посылке? Я думал добавить туда что-то из этого: "Отправитель отсутствует", "Обратное отправление", "Служба доставки". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 16:37 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger Stanislav P, Ты говоришь, что все посылки должны находится в одной таблице, но почему. Пусть в одной таблице будут все активные отправления (первичные и обратные), а в другой — все завершенные. Разве так не лучше? И выдавать будет легче, так как в форме не будут храниться забранные посылки Во-первых и в-главных: Твой вариант неверен с точки зрения построения архитектуры. Нужно учиться сразу делать правильно. Во-вторых: Копирование данных из таблицы в таблицу это лишние действия, которые отнимают процессорное время, загружают диск не нужными операциями. В-третьих: это лишний код и время потраченное на его написание и увеличение шанса допустить ошибку при переносе данных (не всё перенёс, не туда, не так). Для того, чтобы посылки, которые отдали получателю или вернули отправителю не светились в форме, в которой у тебя должны быть только активные, так сказать посылки, нужно в свойствах формы использовать фильтрацию по полю "статус посылки" не равному "Возвращено отправителю" или "выдано получателю", примерно так: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 16:54 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger Что мне следует добавить в поле "Отправитель" в обратной посылке? Я думал добавить туда что-то из этого: "Отправитель отсутствует", "Обратное отправление", "Служба доставки". Это ты у кого и про что спрашиваешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 17:00 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, У всех. И у тебя тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 17:06 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Спасибо. Это в источник данных прописывать, я так понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 17:06 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Если мне хранить все отправления в одной таблице, то как мне организовать обратные отправления? Мне обновлять в текущем отправление поле "Статус доставки" на "В обратной дороге" или "Отправляется отправителю" (при этом отправлений фактически 2, потому что дорога сюда+дорога обратно, а отправление будет 1). При таком способе я не буду ничего менять в других полях (отправителя с получателем местами и города местами, ваще ничего). Или лучше создавать новое отправление с новой накладной, где все эти поля будут меняться? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 17:25 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger Stanislav P, Если мне хранить все отправления в одной таблице, то как мне организовать обратные отправления? Мне обновлять в текущем отправление поле "Статус доставки" на "В обратной дороге" или "Отправляется отправителю" (при этом отправлений фактически 2, потому что дорога сюда+дорога обратно, а отправление будет 1). При таком способе я не буду ничего менять в других полях (отправителя с получателем местами и города местами, ваще ничего). Или лучше создавать новое отправление с новой накладной, где все эти поля будут меняться? Посылка у тебя всегда одна, меняется только её статус на "возврат отправителю", менять отправителя и получателя нельзя, так как это противоречит логике. В базе, проще говоря, создаётся документ "накладная на возврат" и этот документ будет фигурировать при возврате посылки отправителю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 18:01 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Посылка 1, но отправлений то 2. У меня же отправление, а не посылка в базе хранится. Хотя, может я неправильно понимаю. Ну мне нравится твой вариант больше, так как в реале меньше мороки. Но если логически подумать, то отправлений 2. Или в настоящих БД делают также, то есть зависит берут за основную единицу саму посылку, а не отправление. Ну тогда в случае обратного отправления мне стоит просто удвоить заявленную стоимость доставки, которую оплатит первоначальный отправитель? В накладной на возврат мне стоит поменять эти поля местами (отправитель с получателем, их города соответственно)? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 18:06 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Мне же нужно при обратной посылке менять даты отправки и прибытия? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 18:22 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger Мне же нужно при обратной посылке менять даты отправки и прибытия? Не надо. Можно сделать в таблице "Отправления" три поля с датами: Приёма, выдачи и возврата, но правильней будет, дату перенести в таблицу логов (движения посылки), то есть, поле с датой всегда будет одно. Это слегка усложнит запрос, когда надо будет вывести все посылки с определённой датой возврата, так как нужно будет использовать две таблицы, но зато в таблице "Отправления" не будет пустых значений в поле "дата выдачи" или в "дате возврата". Можно не вводить поле "дата возврата", а использовать "дата выдачи" как дату возврата и это логично, так как предприятие посылку выдало, но только отправителю и статус "возвращена" это будет подтверждать. Фактически, поставленную задачу можно решить с помощью двух таблиц: клиенты и отправления. Можно не вести таблицу логов, а просто менять статус посылки на нужный. То же самое и с чёрным списком клиентов - просто менять статус клиента в таблице клиенты. Логи нужны только тогда, когда нужно вести учёт движения посылок во временном разрезе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 21:14 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Про посылку понял. Я как раз используют 3-ье поле "Дата получения" в качестве даты получения как для отправителя, так и для получателя. Но я думаю, что раз уж я использую это поле в обеих случаях, то лучше менять даты получения и прибытия на новые (для обратной посылки), так как мне нужно знать, когда придет данная посылка, чтобы сработал запрос на обновление статуса посылки с "Отправляется отправителю" на "В отделении отправителя". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 21:22 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
В создании БД первым и одним из главных этапов является четкая постановка задачи(это процентов на 60-80 определяет успех).Лично я ничего не понял: -что за организация (транспортная компания,филиал интернет магазина) -каковы функции этой организации -занимается ли эта организация комплектованием заказа (или работа осуществляется только с закрытыми посылками(коробками и не важно что внутри) -и т.д и т.п:короче весь процесс работы-что и как происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 21:33 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
sdku, Организация — служба доставки на территории Украины. Функции организации: доставка посылок по городам Украины. Эта организация занимается перевозкой закрытых посылок (а может и нет, не знаю). Я не жоский БДшник. Я студент, только учусь, поэтому у меня так много ошибок. Мое задание — сделать подсистему БД или что-то типо этого. Нужно, чтобы подсистема была похожа на то, что творится в реальности. В моей БД должны быть реализованы такие функции (если я правильно понимаю, что это): -занесение новых клиентов в БД; -журнал учета ЧС (добавление в ЧС и вычеркивание с него) — этого, возможно, нету в настойщей БД, но у меня может и быть; -регистрация новых посылок, их выдача, обратная отправка (в случае истечения срока хранения или в случае отказа от посылки); -прием новых сотрудников и, возможно, увольнение старых; -вывод разных информации на печать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 22:00 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
DBpr0ger sdku, Организация — служба доставки на территории Украины. Функции организации: доставка посылок по городам Украины. DBpr0ger Эта организация занимается перевозкой закрытых посылок (а может и нет, не знаю). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 23:29 |
|
Запрос на удаление
|
|||
---|---|---|---|
#18+
Stanislav P, Я тут подумал. Мне хотелось бы попробовать реализовать логирование. Посмотреть хотя бы как оно работает. Можешь подсказать, мне в таком случае нужно сделать следующее: -с таблицы "Отправления" убрать поля "Дата отправки", "Дата прибытия" и "Дата получения"; создать таблицу "Логирование" с полями: "Код логирования", "Номер накладной", "Статус логирования", "Дата" -"Номер накладной" — мастер подстановок с таблицы "Отправления"; -"Статус логирования" —мастер подстановок значений типо "В дороге", "В отделение" и т.д. (лучше делать через отдельную таблицу с кодом, чтобы в таблице "Логирование" хранилось число); -"Код логирования" я хотел бы попробовать составить, если получится, с символов текущей даты и текущего времени, потому что счетчик не очень нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 03:10 |
|
|
start [/forum/topic.php?fid=45&msg=39892587&tid=1610354]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 418ms |
0 / 0 |