Разработать базу данных с возможностью загрузки и управления
Описание проекта:
Разработать базу данных на SQL, которая будет поддерживать загрузку различных баз данных с разным числом столбцов и объемом данных через отдельное веб-приложение. База данных должна обеспечивать возможность поиска компаний по тегам, содержащимся в одном из столбцов, а также фильтрацию по другим столбцам.Веб-приложение должно служить интерфейсом для загрузки данных, выполнения поиска, управления данными и выгрузки результатов.
Требования к функционалу базы данных:
- Гибкая схема базы данных:
- Разработать схему базы данных, которая позволит обрабатывать таблицы с разным количеством столбцов.
- Основная таблица должна содержать следующие обязательные поля:
- «Company name»
- «Website»
- «Email»
- «Регион»
- «ИНН»
- «ОКВЭД»
- «Основной вид деятельности»
- «Описание компании»
- «Выручка»
- «Статус»
- «ФИО руководителя»
- «Тег»
- «Дата» (автоматически — дата добавления записи)
- Добавить 3–5 дополнительных пустых столбцов для гибкости, чтобы в них можно было в будущем добавлять данные.
- Вспомогательная таблица для тегов:
- Создать отдельную таблицу для хранения тегов:
id
— уникальный идентификатор тега.Тег
— название тега.
- Создать отдельную таблицу для хранения тегов:
- Обработка отсутствующих столбцов:
- При загрузке данных через веб-приложение, если некоторые столбцы отсутствуют, база данных должна корректно обрабатывать эти случаи: подгружать только присутствующие столбцы и заполнять их в правильном порядке.
- Импорт данных:
- Реализовать процедуру для импорта данных из следующих форматов: Google Sheets, CSV, Excel.
- При импорте данных из веб-приложения должна быть возможность указать соответствие столбцов файла и полей в таблице.
- Управление данными:
- Возможность обновления и удаления данных через веб-приложение.
- Обеспечить резервное копирование и восстановление данных.
- Поиск и фильтрация:
- Реализовать функционал поиска по тегу.
- Предусмотреть возможность фильтрации по другим столбцам, таким как «Регион», «ОКВЭД», «Выручка», «Статус» и т.д.
- Выгрузка данных:
- Возможность выгрузки данных из таблицы в формате CSV через веб-приложение.
Требования к функционалу веб-приложения:
- Панель администратора:
- Форма для загрузки данных в базу.
- Интерфейс для управления (обновление, удаление) данными.
- Возможность ручного добавления записей в таблицу.
- Импорт данных:
- Поддержка импорта данных из файлов форматов Google Sheets, CSV, Excel.
- Указание соответствий между полями таблицы и загружаемыми данными.
- Поиск и фильтрация:
- Простая форма для поиска по тегу.
- Расширенные фильтры для поиска по другим столбцам.
- Резервное копирование:
- Кнопка для создания резервной копии данных.
- Функция восстановления данных из резервной копии.
- Выгрузка данных:
- Функция выгрузки данных в формате CSV.
- Учет пользователей:
- Авторизация и доступ к функционалу только для авторизованных пользователей.
- Логирование всех действий пользователей (загрузка, удаление, обновление данных).
Технические требования:
- СУБД:
- Использовать реляционную СУБД, например, MySQL или PostgreSQL.
- Технологии для веб-приложения:
- Backend: Python (Django/Flask), Node.js, или другой согласованный фреймворк.
- Frontend: HTML, CSS, JavaScript (React/Vue.js/Angular — по согласованию).
- REST API или GraphQL для взаимодействия с базой данных.
- Интеграция с Google Sheets:
- Использовать API Google для импорта данных из таблиц.
- Хранение резервных копий:
- Резервные копии базы данных должны сохраняться в локальном или облачном хранилище.
- Безопасность:
- Защита от SQL-инъекций.
- Шифрование данных, где это необходимо (например, для Email или ИНН).