/>
У результаті ми отримали нормалізовану базу даних по всім стандартам нормалізації, тобто нормальних форм. У результаті у нас вийшло 7 таблиць це не багато і не мало для базового функціоналу стандартного інтернет-магазину. Тепер ми можемо наповнити нашу базу даних тимчасовими даними і розробляти SQL вибірки.
Схема бази даних
3. Розробка SQL вибірок даних з БД
3.1 Вибірка таблиці категорій
Після створення бази даних у нас стоїть важлива задача, написати SQL запит, який буде діставати потрібні дані з нашої БД. Ми будемо складати запити за таким же порядком, як створювали нашу БД. Перший справою нам потрібно написати запит, який витягне з нашої БД всі категорії товарів. Проговоримо детально задачу: нам потрібно вибрати поля cat_id, cat_name, parent_id з таблиці cat і сортувати ці дані спочатку по полю parent_id, потім по полю cat_name. Все дуже просто, грубо кажучи ми вже склали запит залишилося тільки написати його в синтаксисі SQL:
SELECT cat_id, cat_name, parent_id FROM cat ORDER BY parent_id, cat_name;
Вибірка таблиці категорій
Таким чином, ми отримали з нашої бази даних список всіх категорій відсортованих по полях parent_id, cat_name.
3.2 Вибірка всіх товарів певної категорії
Вибірка товарів певної категорії має не самий тривіальний запит. За задумом нашого інтернет-магазину ми не можемо додавати товар в категорію, яка має дочірні категорії і тим не менш при вибірці всіх товарів з предикатом батьківської категорії ми повинні отримати всі товари дочірніх категорій, які відносяться до даної категорії.
Запит складатиметься з 2 підзапитів. Перший підзапит буде вибирати з таблиці goods усі товари де goods_brandid=КЛЮЧ_КАТЕГОРІІ і товар не прихований на сайті. Другий підзапит буде трохи складніше, він матиме вкладений запит. Це потрібно для того щоб вибрати всі товари дочірніх категорій. Потім ми візьмемо ці два підзапиту і об'єднаємо оператором UNION. У кінцевому підсумку ми отримаємо універсальний запит який обиратиме усі товари конкретної категорії, і якщо категорія батьківська, то він буде вибирати усі товари всіх дочірніх підкатегорій.
SQL:
(SELECT goods_id, name, img, anons, price, hits, new, sale, date FROM goods WHERE goods_brandid= $ category AND visible= laquo ; 1 )
(SELECT goods_id, name, img, anons, price, hits, new, sale, date FROM goods WHERE goods_brandid IN (SELECT brand_id FROM brands WHERE parent_id= $ category ) AND visible= 1 )
$ category - це ключ вибираною категорії.
Насправді тут все дуже просто, якщо $ category батьківська, то перший підзапит поверне нам порожній результат, а другий підзапит поверне нам всі товари з підкатегорії де, parent_id= $ category (батько підкатегорії=категорії).
Висновок
Ми закріпили досліджуваний матеріал з дисципліни «Інформаційні ресурси і системи. Бази даних". Повторили весь матеріал і зробили самостійну практичну частину. Ми розробили нормалізувати базу даних для стандартного інтернет магазину. При розробці БД, ми дотримувалися, правилам так званих «нормальних форм», тим самим розробили правильну структуру БД. Також ми продемонстрували широке використання реляційної моделі бази даних і працювали з сервером MySQL і СУБД phpMyAdmin. У підсумку проектування та розробці ми отримали базу даних з 7 таблиць. Після проектування і розробки нашої бази даних інтернет-магазину, ми закріпили наші знання з мови програмування запитів до бази даних SQL і розібрали кілька нестандартних запитів і показали найбільш оптимальне рішення однієї нетривіальною завдання вибірки даних з БД.
Список літератури
1.Грабер М. Введення в SQL.
2.http: //ru.wikipedia
.MySQL http://ru.wikipedia/wiki/MySQL
.https: //ru.wikipedia/wiki/SQL
.http: //site-do/db/sql2.php
6.Web-програмування Лекції. http://5fan
.Розробка сайту на основі CMS Wordpress. http://knowledge.allbest
.Проектірованіе та реалізація бази даних в архітектурі клієнт-сервер http://bibliofond
.Бабротека: електронна бібліотека бабра :: Грубер Мартін :: Розуміння SQL http://lib.babr
.Возможна мови SQL http://otherreferats.allbest/programming/00010336_0.htm
.http: //softholm