Skip to content

БД для клининговой компании: учёт заказов, клиентов, сотрудников и т.д.

Notifications You must be signed in to change notification settings

cleaning-corp/DB

Repository files navigation

Database Initialization

Этот проект включает сценарии для автоматической генерации файла init.sql, который собирает все схемы и настройки базы данных из различных файлов SQL в папке schemas.

Структура проекта

  • schemas/ — папка, содержащая все схемы базы данных, разделенные на файлы:
    • clients/ — схема для работы с заказчиками.
      • functions.sql — пользовательские функции для работы с данными.
      • indexes.sql — индексы для таблицы пользователей.
      • table.sql — описание таблицы.
      • triggers.sql — триггеры для таблицы.

Как это работает

  1. Скрипт run.sh парсит все SQL-файлы в папке schemas/, включая вложенные папки (например, schemas/clients/).
  2. Каждый файл добавляется в общий файл init.sql в порядке, определенном скриптом.
  3. Результирующий файл init.sql включает все таблицы, индексы, функции и триггеры, которые необходимы для инициализации базы данных.

Примечание: Если какой-либо из файлов отсутствует, скрипт завершится с ошибкой. Убедитесь, что все необходимые файлы присутствуют в папке schemas/.

Установка

  1. Скачайте или клонируйте репозиторий.
  2. Убедитесь, что у вас установлен bash и доступ к shell.
  3. В корне проекта выполните команду:
    bash run.sh
  4. После выполнения скрипта в директории появится файл init.sql, готовый к использованию для инициализации базы данных.

Структура init.sql

Файл init.sql будет содержать:

  1. Таблицы — описание всех таблиц, включая их поля и ограничения.
  2. Индексы — индексы, которые помогают ускорить выполнение запросов.
  3. Функции — пользовательские функции, используемые для работы с данными.
  4. Триггеры — триггеры для автоматического выполнения определенных действий при изменении данных.

Пример структуры каталогов:

schemas/
├── clients/
│   ├── functions.sql
│   ├── indexes.sql
│   ├── table.sql
│   └── triggers.sql
run.sh
init.sql

Пример содержимого table.sql:

CREATE TABLE clients
(
  client_id  SERIAL PRIMARY KEY,
  first_name VARCHAR(50)  NOT NULL,
  last_name  VARCHAR(50)  NOT NULL,
  phone      VARCHAR(20)  NOT NULL,
  email      VARCHAR(100),
  address    VARCHAR(200) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  notes      VARCHAR(300)
);

После выполнения скрипта run.sh файл init.sql будет содержать все необходимые схемы для работы с заказчиками, которые могут быть использованы для инициализации вашей базы данных.

Дальнейшие инструкции находятся в USAGE.md

About

БД для клининговой компании: учёт заказов, клиентов, сотрудников и т.д.

Topics

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages