Процес правильного проектування БД на прикладі
На сервісі QuintaDB дані зберігаються в таблицях, які заповнюються за допомогою форм[1]. На прикладі таблиці із замовленнями побутової техніки ми розглянемо найпоширенішу помилку при створенні бази даних. Припустимо, що у нас є завдання створити таблицю для менеджерів, які вводитимуть дані клієнта та його замовлення. Для простої бази даних може вистачити однієї таблиці, але для більшості БД їх потрібно більше.
Розглянемо перший випадок. Створимо форму Замовлення з усіма необхідними полями і спробуємо працювати тільки з однією таблицею.
Але ось декілька незручностей, з якими ви можете зіткнутися:
Щоб спростити завдання собі та менеджерам, а також заощадити час, скористайтеся наступною інструкцією. Перед початком проектування ми рекомендуємо заздалегідь продумати мету і призначення бази даних. Визначте скільки вам потрібно таблиць і яку інформацію потрібно розмістити всередині, а також список користувачів, які будуть працювати з базою даних. Це допоможе правильно визначити завдання, які потрібно вирішити. У нашому прикладі ми створимо просту базу даних для магазину побутової техніки, з якою працюватимуть менеджери магазину.
Крок 1. Створіть форму Каталог товарів і додайте наступні поля: Категорія, Найменування, Модель, Код товару, Статус, Ціна за шт.
Крок 2. Заповніть таблицю з інформацією про товари або імпортуйте дані[2] .
Крок 3. Аналогічно створіть форму Клієнти, яка міститиме поля для заповнення даних про клієнта (Ім'я, Адреса, Телефон та ін.). На цьому етапі не обов'язково заповнювати таблицю з клієнтами, але якщо у вас вже є база даних, то ви можете зробити це одразу.
Крок 4. Для оформлення замовлення клієнта потрібно створити третю форму - Форма замовлення.
Треба зв'язати цю форму з таблицею Каталог товарів за допомогою поля Зв'язок[3]. Це поле допоможе зв'язати дані з декількох таблиць всередині вашого додатку. Бажано, щоб колонка, по якій виконується зв'язок, містила унікальні значення. Для цього добре підійде колонка Код товару в таблиці Каталог товарів, оскільки код ніколи не повторюється.
Виберемо тип зв'язку - Багато-до-одного, тип відображення поля - Випадаючий перелік або Поле з автодоповненням і можливістю вибрати декілька значень. Тепер при виборі коду товару на формі замовлення, система автоматично визначає: яке найменування у цього товару, модель, статус і ціна за одиницю. Ці колонки (Найменування, Модель, Ціна за шт.) можна показати у поточній таблиці, за допомогою полів типу: Пов'язана колонка[4].
Крок 5. Додамо на форму числове поле Кількість та Формулу[5] Разом.
За допомогою формули Ціна*Кількість порахуємо підсумкову суму замовлення.
Крок 6. Створюємо фінальну форму - Продажі. За допомогою поля зв'язок - Клієнт пов'язуємо таблиці Продажі та Клієнти. Тип зв'язку - Багато-до-одного.
Крок 7. Додаємо Форму замовлення у вигляді поля Субформа[6]. Щоб підсумувати значення колонки Разом потрібно додати на форму пов'язану колонку До сплати.
Крок 8. Заповнюємо форму. Вибираємо потрібного клієнта з пов'язаної таблиці або додаємо нового за допомогою поля зв'язок. Замовлений клієнтом товар вказується у субформі Замовлення.
У результаті маємо компактнішу таблицю, без необхідності дублювати кожного разу дані вручну. Також, якщо оновити значення в одній таблиці, то усі зміни теж відобразяться в пов'язаних таблицях, тому що в основі побудови бази даних знаходиться набір пов'язаних значень. Така база даних називається - реляційною.
У наступній статті, ви дізнаєтеся, як правильно розмежувати права доступу в базі даних за допомогою звітів.
Корисні посилання:
1. Створення веб-форми в QuintaDB
2. Як створити онлайн базу даних з Excel або CSV файлу
5. Формула
6. Субформа