Одна запись в таблице А соответствует одной записи в таблице Б. Пример: Пользователь и Паспорт.
Один ко многим (1:N)
Одна запись в таблице А может быть связана с несколькими записями в таблице Б. Пример: Автор и его Книги.
Многие ко многим (M:N)
Множество записей в таблице А могут быть связаны с множеством записей в таблице Б. Реализуется через третью, связующую таблицу. Пример: Студенты и Курсы.
Нормальные формы: Интерактивный симулятор
Нормализация — это процесс организации данных для уменьшения дублирования. Давайте пройдем этот путь шаг за шагом.
Шаг 0: Ненормализованные данные (0NF)
У нас одна большая таблица, где данные повторяются, а товары хранятся в разных столбцах. Это неудобно и неэффективно.
Заказ_ID
Имя клиента
Товар 1
Цена 1
Товар 2
Цена 2
001
Анна
Книга
10
Ручка
2
002
Иван
Блокнот
5
Заказ_ID
Имя клиента
Город
Регион
Товар
Цена
001
Анна
Минск
Минская обл
Книга
10
001
Анна
Минск
Минская обл
Ручка
2
002
Иван
Гомель
Гомельская
Блокнот
5
Таблица: Клиенты
Клиент_ID
Имя
Город
Регион
1
Анна
Минск
Минская обл
2
Иван
Гомель
Гомельская
Таблица: Товары в заказе
Заказ_ID
Клиент_ID
Товар
Цена
001
1
Книга
10
001
1
Ручка
2
002
2
Блокнот
5
Таблица: Города
Город_ID
Город
Регион
1
Минск
Минская обл
2
Гомель
Гомельская
Таблица: Клиенты
Клиент_ID
Имя
Город_ID
1
Анна
1
2
Иван
2
Таблица: Товары в заказе
Заказ_ID
Клиент_ID
Товар
Цена
001
1
Книга
10
001
1
Ручка
2
002
2
Блокнот
5
Советы для QA
Настаивайте на доступе: Не всегда тестировщикам дают доступ к БД. Настаивайте на его получении (хотя бы на чтение), это критически важно для проверки корректности сохранения данных.
Ограниченные права: Будьте готовы, что ваши права будут ограничены. На Production доступ обычно есть только у избранных.
SELECT перед DELETE: Прежде чем выполнять удаление данных, всегда проверяйте, что именно вы собираетесь удалить, с помощью запроса SELECT. Это убережет от фатальных ошибок.
Миграции и бэкапы: Уточняйте у команды, как проходят миграции (изменения схемы БД) и как часто делаются бэкапы (резервные копии). Это важно для планирования тестов.
Создание данных: Используйте БД для быстрого создания тестовых данных (пользователей, заказов), вместо того чтобы делать это через UI.