Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

SQL — удалённая работа в Москве

Дата: 2025-05-10
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-05-10
Описание
алгоритм распределения. Бизнес-задача: распределить взаимную проверку студентами заданий. Все на SQL. На Supabase будет выполняться (есть особенности). На вход функции: sprint_strapi_document_id (идентификатор учебной недели) Ожидаемый результат: По 3 заданиям, привязанным к учебной неделе проведены распределения студентов с соблюдением ряда условий. Подробнее: ЧТО ДЕЛАЕТ ГЕНЕРАТОР (ПРИМЕРНО) 1. Старт Получает идентификатор спринта и режим работы («затереть всё» или «дописать недостающее»). Спринт = учебная неделя. 2. Очистка (по желанию) Если запрошен «затереть всё» — удаляет из результата всё, что относится к этому спринту, и фиксирует, сколько строк исчезло. 3. Снимок входных данных Собирает четыре набора сведений, без хранения в БД: 1. перечень дуэлей (2 пользователя делают одну задачу) спринта и их тип (тренировочная / боевые); 2. список разрешённых участников (не уволены, из нужного потока); 3. для каждой сыгранной пары — самые свежие ответы обоих игроков — у каждого ответа есть pair_id; 4. из предыдущего пункта формирует сами пары: «идентификатор пары + оба игрока». 4. Рассчитывает квоты Для каждого допущенного пользователя считает: сколько он сыграл ответов × 3 — столько он обязан проверить. У кого получилось 0 — тот сразу «вне игры» (ему нечего проверять, он никому не нужен). 5. Готовит «кольца» – два воображаемых циклических списка Первое кольцо: шесть «слотов» подряд для каждого будущего рецензента. Второе кольцо: шесть «слотов» подряд для каждой пары, которую надо проверять. 6. Базовый round-robin 1. Для тренировочных дуэлей всем парам заранее выбирает «сдвиг» — на сколько позиций провернуть кольцо рецензентов. Для боевых дуэлей сдвиг 0. 2. «Накладывает» кольцо рецензентов на кольцо пар с учётом сдвига и тем самым назначает первых шесть рецензентов каждой паре, игнорируя случаи «рецензент = игрок пары». Получается черновой чертёж назначений. 3. Из квоты каждого назначенного рецензента вычитает израсходованные слоты. 7. Дозакрывает пары, где оказалось меньше 6 рецензентов Пока остаются «дыры»: • выбирает кандидатов с ещё не обнулённым лимитом, которых нет в данной паре и которые не столкнутся с ограничениями; • назначает их, строго не превышая «осталось проверить» ни у пары, ни у кандидата; • обновляет, сколько ещё нужно и какие квоты остались. 8. Сохраняет результат Каждое назначение дублирует на обе записи пары (чтобы вышло ровно 12 строк на пару: 6 рецензентов × 2 игрока). Старые строки не дублируются — если они уже существуют, пропускает. 9. Проверяет себя Есть две жёсткие проверки — если хотя бы одна не пройдена, всё откатывается и бросается исключение: 1. у каждой пары должно быть ровно 6 назначений, иначе фиксируется список «неполных» пар (попадают в лог) и генератор падает; 2. ни у одного рецензента фактическое число назначений не может превышать рассчитанную квоту; нарушители фиксируются в отдельный список и тоже приводят к падению. 10. Формирует отчёт Возвращает JSON: • уникальный идентификатор запуска; • статус «OK» или «ERROR»; • массив шагов-сообщений в хронологическом порядке: сколько строк стерто, сколько сохранено, попали ли пары в «неполные», есть ли «перебранные» квоты, прошла ли финальная валидация. Полный набор логических «баз»,-которыми оперирует генератор (ниже — только смысловая структура: названия полей и связь с алгоритмом; никаких SQL-таблиц или DDL-врезок) 1. Пользователи • user_id – внутренний идентификатор участника • stream_id – учебный поток (курс) • team_id – команда внутри потока • dismissed_at – дата отчисления / увольнения или пусто Зачем нужно → позволяет • убрать выбывших, • узнать команду игрока для правил FULL-CONTACT, • связать участника с потоком спринта. 2. Страйки • user_id – кто получил штраф • sprint_id – за какой спринт штраф Зачем нужно → если есть запись по текущему спринту, пользователь не допускается к проверкам. 3. Потоки и Спринты • stream_id ↔ sprint_id – один поток может иметь несколько спринтов Зачем нужно → определить, каких пользователей считать «своими» для данного спринта. 4. Команды • team_id – идентификатор команды • stream_id – чей поток Зачем нужно → различать «свою» и «чужую» команду в боевых дуэлях. 5. Дуэли • duel_id – внутренняя ссылка в ответах • sprint_id – к какому спринту относится • type – TRAINING или FULL-CONTACT Зачем нужно → отфильтровать дуэли спринта и понять, нужны ли правила баланса команд. 6. Ответы на дуэли • pair_id – уникальный идентификатор пары игроков • user_id – автор конкретного ответа • rival_id – соперник автора • duel_id – какая дуэль • hash – общий «ключ партии» (одинаков у двух строк пары) • created_at – когда отправлен ответ Зачем нужно → • брать самый свежий ответ каждого игрока в паре, • посчитать, сколько ответов сыграл каждый пользователь → сколько рецензий он обязан выдать (квота = 3 × ответы), • сформировать список всех пар «hash + duel». 7. Назначения на проверку (целевая таблица) • reviewer_id – кто будет проверять • duel_id – дуэль пары • user_id – чей ответ проверяется • hash – «ключ партии» (чтобы различать пары) Зачем нужно → конечный результат работы генератора; строка уникальна в сочетании (reviewer_id, hash, duel_id). 8. Внутренние счётчики-выкладки генератора. Что нужно ещё: поддержка и сопровождение, разработать документацию. Если сработаемся — есть много задач на стэке Supabase/Bubble/N8N.
Похожие заказы

SQL

дистанционно
договорная
Разработать базу данных с нуля. Сделать лабораторную работу по базе данных.
Москва Фрилансеры

SQL

дистанционно
договорная
Разработать базу данных с нуля. Сделать лабораторную работу.
Москва Фрилансеры

SQL

дистанционно
договорная
Обучение sql. Необходим специалист, обучающий sql. Был пройден курс Карпова Анатолия, но задачи с трудом решаются потому что логика запросов тяжело дается для восприятия.
Москва Фрилансеры

SQL

дистанционно
договорная
Разработать базу данных с нуля. Есть сайт Нужно создать базу данных, где будут тест и они будут обновлять + ответы с фидбеком.
Москва Фрилансеры

SQL

дистанционно
договорная
Разработать базу данных с нуля. Тема: Информационная система «Учет лицензий программного обеспечения предприятия». Что нужно сделать: -Спроектировать нормализованную базу данных (до 3-й нормальной формы) в соответствии с предметной областью: Программное обеспечение: название, назначение (антивирус, эл. таблицы, текстовый редактор, САПР и т.д.). Лицензия: номер, компания-лицензиар, дата выдачи, дата окончания, количество экземпляров. Компания-лицензиар: наименование, контактный телефон, контактный сотрудник. Подразделение: название, ответственный за ПО, контактный телефон. -Учесть правила: один вид ПО может иметь несколько лицензий; в подразделении может использоваться несколько видов ПО; одна лицензия может использоваться в разных подразделениях; у каждого подразделения один ответственный; компания может выдавать лицензии на разные виды ПО. -Создать базу данных в программе DB Browser for SQLite: -Реализовать таблицы, связи (первичные и внешние ключи), заполнить тестовыми данными (не менее 5–7 записей в каждой таблице). -Сохранить файл базы данных .db. -Разработать приложение на Qt (C++ с использованием Qt SQL): Графический интерфейс на QWidget/Qt Designer. Возможность открытия БД, просмотра, добавления и удаления записей во всех таблицах. Реализовать 5 сервисных запросов: Вывод списка лицензий по выбранному виду ПО. Вывод списка лицензий выбранной компании-лицензиара. Вывод списка лицензий ПО в выбранном подразделении. Вывод списка лицензий с завершившимся сроком. Вывод списка лицензий по виду ПО + выбранному подразделению. -Подготовить отчёт по образцу (титульный лист, теория, постановка задачи, описание решения со скриншотами, листинг кода, вывод). Отчёт должен быть оформлен в Word (или PDF). Требования к исполнителю: Опыт работы с SQLite (DB Browser for SQLite) и Qt (Qt Creator, Qt SQL). Умение писать понятный код на C++. Готовность предоставить исходники, файл БД и отчёт. И если кратко: Нужно: спроектировать нормализованную БД (3НФ), создать её в DB Browser for SQLite, заполнить тестовыми данными, написать приложение на Qt (C++/Qt SQL) с интерфейсом для просмотра/добавления/удаления записей и 5 сервисными запросами. P.S. Оформить смогу и сам, главное чтобы программа была рабочая и я смог сделать скриншоты все нужны(которые в отчёте есть!), либо вы мне их просто скинете. !!!!Есть пример готовой работы по аналогичной теме (другой вариант) — код на Qt + SQLite и отчёт. Нужно переделать под вариант 1: изменить структуру БД, SQL-запросы, интерфейс и оформить новый отчёт. Пример предоставлю.!!!. !!!!Есть пример готовой работы по аналогичной теме (другой вариант) — код на Qt + SQLite и отчёт. Нужно переделать под вариант 1: изменить структуру БД, SQL-запросы, интерфейс и оформить новый отчёт. Пример предоставлю(прикрепил отчёт одногруппника и сам вариант) .!!!.
Санкт-Петербург Фрилансеры

SQL

дистанционно
договорная
Ищу преподавателя. Хочу научиться sql с нуля для дальнейшей работы бизнес аналитиком.
Москва Фрилансеры

SQL

дистанционно
договорная
Обучение. Обучение SQL. Что нужно ещё: Обучение.
Москва Фрилансеры