Анализ задачи 3 шаг

Логика при построении сложных форм работы с данными

После создания простых форм выполняющий 1 запрос на добавление клиента, товара, сотрудника возникает необходимость создать формы добавления данных в несколько таблиц при чем данные зависят друг от друга чем усложняют логику выполнения операции

Для решения таких задач необходимо продумать несколько нюансов:

1) Понять какие данные будут участвовать в решении задачи

2) Определить те данные, которые уже охраняться в базе и стараться задействовать их.

3) Разбить задачу на более мелкие этапы желательно, чтобы каждый выполнял 1 простой запрос.

Пример Создание формы покупки товара клиентом

Анализ задачи 1 шаг

1) Понять какие данные будут участвовать в решении задачи

1) ID клиента

2) ФИО

3) ID Заказа

4) Data заказа

5) ID_товара

6) Название товара

7) Количество

Анализ задачи 2 шаг

1) Определить те данные которые уже храняться в базе и стараться задействовать их.

1) ID клиента >> таблица клиенты

2) ФИО >> таблица клиенты

3)ID Заказа >> таблица заказа и описание заказа

4) Data заказа >> таблица заказа

5) ID_товара >> таблица товары и таблица описание заказа

6) Название товара >> таблица товары

7) Количество >> таблица товары и таблица описание заказа

8) Цена >> таблица товары

Анализ задачи 3 шаг

Разбить задачу на более мелкие этапы желательно, чтобы каждый выполнял 1 простой запрос:

1) Получить данные о клиенте

SELECT Клиент.ID_Klient, Клиент.Familiya + Клиент.Name+ Клиент.Otchestvo AS FIO FROM Клиент;

2) Получить данные о товарах которые будем продавать логично учесть только тот товар которого больше 0

SELECT Товар.ID_Tovar, Товар.Name, Товар.price, Товар.Kolichestvo FROM Товар Where Товар.Kolichestvo>0

3) Получить сразу ID заказа без его создания невозможно, поэтому данная задача разделяется на 2 шага

1) Мы добавляем в таблицу заказ новый заказ на основе данных о выбранном клиенте т.е. на основе его ID и текущей даты.

2) По данным ID клиента и Data заказа получаем уникальный номер который нам понадобиться при заполнении корзины

SELECT ID_ZAKAZ FROM Заказ WHERE ID_Klient=1 AND Data_zakaza=#22/02/2013#

Добавление выбранного товара в корзину, вычитание добавленных товаров из таблицы товары. Задачка так же должна декомпозироваться на несколько простых

SELECT Товар.ID_Tovar, Name FROM Товар Where Товар.ID_Tovar IN (2,4,6 )

3) Добавление выбранного товара в корзину, вычитание добавленных товаров из таблицы товары а так же ограничить чтобы клиент не мог взять больше товаров чем у нас есть. Задачка так же должна декомпозироваться на несколько простых.

Предоставив возможность ввода клиентом количества нужного ему товара нам необходимо проверять условие наличия этого количества на складе реализовав его проверочным запросом

SELECT Товар.ID_Tovar, Name FROM Товар Where Товар.ID_Tovar =1 AND Kolichestvo>=3

Логично предположить, что если запрос вернет пустое значение, то мы не сможем отгрузить товар клиенту в нужном ему количестве и в связи с этим мы его попробуем попросить ввести другое количество товара

4) Следующим шагом будет добавление товара в таблицу корзина и одновременно с этим вычитание его из таблицы товары что по сути логично отражает выдачу товара клиенту на руки

Как и пред идущие задачи эту нам тоже необходимо разобрать на 2

1) Добавление данных в таблицу корзина на основе ранее полученной информации о

1) ID заказа полученный из запроса

2) Списка ID товаров который выбрал клиент

3) Количество товаров проверенное при оформлении покупки клиентом

2) Обновить по известным ID товаров значения количества в таблице товары



r.php"; ?>