Giter VIP home page Giter VIP logo

homework's Introduction

Домашнее задание

Пояснение по заданиям

Ускорение изменения данных, уменьшение числа проходов, количества переменных и прочая оптимизация кода – приветствуются, а для специалистов высокого уровня настоятельно рекомендуется. Это поможет в полной мере понять Ваш уровень, как разработчика и на собеседовании уже этот вопрос не поднимать.

Задание №1

Есть таблица test_pay:

Название колонки Описание колонки
clnt_id ID клиента
subs_id ID абонента
pay_sum Сумма платежа
pay_date Дата платежа
del_date Дата удаления платежа. Если платеж не удален, то не заполняется

и таблица test_data:

Название колонки Описание колонки
n ID (порядковый номер)
clnt_id ID клиента
subs_id ID абонента
all_pay_sum Сумма платежей
  • На клиенте может быть много абонентов.
  • Один и тот же абонент не может быть на разных клиентах.
  • У абонента может быть много платежей.

Нужно написать запрос, который выбирает сумму первых 10 не удалённых платежей на каждом из абонентов. Данные из запроса должны помещаться в коллекцию, содержащую поля: clnt_id, subs_id, all_pay_sum.

По завершению выборки данных в коллекцию, необходимо вставить каждую третью запись из этой коллекции в таблицу test_data. Допускается использование вспомогательных объектов и конструкций для решения задачи.

Задание №2

Есть две таблицы test и test_log:

Название колонки Описание колонки
n Порядковый номер (Primary Key)

Изначально в таблице test присутствует 23 записи с значением n от 1 до 23. В таблице test_log присутствует запись со значением n = 8.

Необходимо написать цикл от 1 до 23 (номер шага цикла обозначим i), который:

  1. Обновляет данные в таблице test для каждого n = i, устанавливая n = n - 1;
  2. Вставляет в таблицу test_log запись с n = i.

При этом должны выполняться следующие условия:

  1. Каждые 5 шагов должна выполняться фиксация изменений в таблицах.
  2. Изменения по тем шагам, которые имели ошибки, НЕ должны быть зафиксированы в таблицах.

Задание №3

Данное задание выполняется только после того, как были выполнены первые два задания и куратор подтвердил, что они выполнены хорошо и следует приступить к третьему. В определенных случаях выполнение этого задания может не потребоваться.

Задание творческое и предназначено для оценки того, как Вы самостоятельно можете выстраивать решения (архитектурно, алгоритмически, логически). Тут нет правильного варианта. Делайте так, как считаете верным.

Необходимо создать упрощенную структуру БД и пакет для следующего кейса:

У абонента есть следующие сущности:

  • баланс – текущие средства, доступные абоненту
  • платежи
  • расходы

Абоненту необходимы возможности просмотра:

  • состояния текущего баланса
  • истории изменений баланса

Изменения баланса предполагается делать не напрямую, а через помещение данных об изменениях в какую-то промежуточную очередь или таблицу. Т.е. тот, кто меняет баланс должен писать данные в некоторую сущность, затем другой процесс забирает данные из этой сущности (по необходимости их агрегирует) и уже фиксирует эти изменения на балансе.

Примечания

  • Используется Oracle 12c R2

homework's People

Contributors

alesana-san avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.