English
Italiano
Español
Français
Deutsch
Português
Ελληνικά
Nederlands
Polski
Čeština
中文
日本語
हिन्दी
اللغة العربية
Русский
Українська
עִברִית
Türk
Latvietis
Dansk
Norsk
Íslenska
한국어
Suomen
Gaeilge
Bahasa Melayu
Svenska
Русский
Процесс правильного проектирования бд на примере
На сервисе QuintaDB данные хранятся в таблицах, которые заполняются с помощью форм[1]. На примере таблицы с заказами бытовой техники мы рассмотрим самую распространенную ошибку при создании базы данных. Предположим, что у нас есть задача создать таблицу для менеджеров, которые будут вводить данные клиента и его заказы. Для простой базы данных может хватить одной таблицы, но для большинства БД их нужно несколько.
Рассмотрим первый случай. Создадим форму Заказы со всеми необходимыми полями и попробуем работать только в этой таблице.


Но вот несколько неудобств, с которыми вы можете столкнуться:
Чтобы упростить задачу себе и менеджерам, а также сэкономить время, воспользуйтесь следующей инструкцией. Перед началом проектирования мы рекомендуем продумать заранее цель и назначение базы данных. Определите сколько вам нужно таблиц и какие сведения нужно в них поместить, а также список пользователей, которые будут работать с базой данных. Это поможет правильно определить задачи, которые нужно решить. В нашем примере, мы создадим простую базу данных для магазина бытовой техники, с которой будут работать менеджеры магазина.
Шаг 1. Создайте форму Каталог товаров и добавьте на нее поля: Категория, Наименование, Модель, Код товара, Статус, Цена за шт..
Шаг 2. Заполните таблицу с информацией о товарах или импортируйте данные[2] .


Шаг 3. По аналогии создайте форму Клиенты, которая будет содержать поля для заполнения данных о клиенте (Имя, Адрес, Телефон и др.). На данном этапе не обязательно заполнять таблицу с клиентами, но если у вас уже есть база данных, то вы можете сделать это сразу.


Шаг 4. Для оформления заказа клиента нужно создать третью форму - Форма заказа.
Нужно связать эту форму с таблицей Каталог товаров с помощью поля Связь[3]. Данное поле поможет связать данные из нескольких таблиц внутри вашего приложения (подробнее о связях между таблицами читайте по ссылке).
Желательно, чтобы колонка, по которой выполняется связь, содержала уникальные значения. Для это хорошо подойдет колонка Код товара в таблице Каталог товаров, т.к. код никогда не повторяется.
Выберем тип связи - Многие-к-одному, тип отображения поля - Выпадающий список или Поле с автодополнением и возможностью выбрать несколько значений. Теперь при выборе кода товара на форме заказа, система автоматически определяет: какое наименование у этого товара, модель, статус и цена за единицу. Эти колонки (Наименование, Модель, Цена за шт.) можно отобразить в текущей таблице, с помощью полей типа: Связанная колонка[4].
Шаг 5. Добавим на форму числовое поле Количество и формулу[5] Итого.
С помощью формулы Цена*Количество будет считаться итоговая сумма заказа.

Шаг 6. Создаем финальную форму - Продажи. С помощью поля связь - Клиент связываем таблицы Продажи и Клиенты. Тип связи - Многие-к-одному.
Шаг 7. Добавляем Форму заказа в виде поля Субформа[6]. Чтобы суммировать значения колонки Итого нужно добавить на форму Связанную колонку К оплате. Узнать подробнее как считается сумма по субформе можно по этой ссылке.

Шаг 8. Заполняем форму. Выбираем нужно клиента из связанной таблицы или добавляем нового с помощью поля Связь. Заказанный клиентом товар указывается в субформе Заказ.

В итоге имеем более компактную таблицу, без необходимости дублировать каждый раз данные вручную. Также, если обновить значения в одной таблице, то все изменения отобразятся в связанных таблицах тоже, потому что в основе построения базы данных находятся набор связанных значений. Такая база данных называется - реляционной.
В следующей статье, вы узнаете как правильно разграничить права доступа в базе данных, с помощью отчетов.
Полезные ссылки:
1. Как создать базу данных для сайта
2. Как создать базу данных онлайн, импортируя данные из Excel и CSV файлов
3. Как связать таблицы (формы) в QuintaDB